CVE-2026-40186 — ApostropheCMS: sanitize-html allowedTags Bypass via Entity-Decoded Text in nonTextTags Elements
ApostropheCMS is an open-source Node.js content management system. A regression introduced in commit 49d0bb7, included in versions 2.17.1 of the ApostropheCMS-maintained sanitize-html package bypasses allowedTags enforcement for text inside nonTextTagsArray elements (textarea and option). ApostropheCMS version 4.28.0 is affected through its dependency on the vulnerable sanitize-html version. The code at packages/sanitize-html/index.js:569-573 incorrectly assumes that htmlparser2 does not decode entities inside these elements and skips escaping, but htmlparser2 10.x does decode entities before passing text to the ontext callback. As a result, entity-encoded HTML is decoded by the parser and then written directly to the output as literal HTML characters, completely bypassing the allowedTags filter. An attacker can inject arbitrary tags including XSS payloads through any allowed option or textarea element using entity encoding. This affects non-default configurations where option or textarea are included in allowedTags, which is common in form builders and CMS platforms. This issue has been fixed in version 2.17.2 of sanitize-html and 4.29.0 of ApostropheCMS.
Descrição oficial em inglês (tradução ainda não revisada).
Quem explora e qual a prioridade
Nota de 0 a 100 que combina exploração confirmada, uso por ransomware e grupos APT, exploits públicos, EPSS e severidade.
Como a nota foi calculada
- EPSS 0.3% (probabilidade de exploração em 30 dias)+3
- Severidade técnica (medium)+3
- CISA SSVC: exploração "poc"+5
A nota ordena a fila de correção; não substitui o contexto dos seus ativos (exposição à internet, criticidade, compensações).
Triagem
Está sendo explorada, qual a probabilidade de exploração, o que afeta e qual a severidade segundo as fontes.
Avaliação SSVC da CISA CISA
Três pontos de decisão que a CISA publica para as CVEs que avalia (SSVC 2.0.3). Uma decisão de priorização, não uma nota de severidade.
Remediação
Correções e mitigações documentadas pelas fontes — com link para o aviso original.
- Patch documentado — github.com (NIST National Vulnerability Database)
Primeiras 24 horas
Ordenado a partir dos próprios campos do registro — exposição primeiro, porque não se corrige o que não se encontrou. Ponto de partida, gerado por regras.
- Identifique ativos expostos que executam as combinações de fabricante/produto/versão afetadas (Apostrophecms Apostrophe, Apostrophecms Apostrophecms, Apostrophecms Sanitize-html).
- O ataque é pela rede e não exige privilégios: restrinja a exposição (ACLs, VPN, WAF) até corrigir.
- Aplique a versão corrigida ou o patch documentado na seção Remediação.
- A exploração exige interação do usuário: reforce filtros de e-mail/web e alerte os usuários afetados.
- Procure nos logs disponíveis sinais de tentativa de exploração compatíveis com a classe da falha (cross-site scripting), erros e anomalias de autenticação.
Escopo afetado
Fabricante, produto e versões como as fontes os descrevem.
| Fabricante | Produto | Versões | Status | Fonte |
|---|---|---|---|---|
| Apostrophecms | Apostrophe | versão >= 4.28.0, < 4.29.0 | Vulnerável | CVE Program (cve.org) e CISA ADP |
| Apostrophecms | Apostrophecms | versão 4.29.0 | Vulnerável | NIST National Vulnerability Database |
| Apostrophecms | Sanitize-html | ≤ 2.17.1 | Vulnerável | NIST National Vulnerability Database |
| Apostrophecms | Sanitize-html | versão >= 2.17.1, < 2.17.2 | Vulnerável | CVE Program (cve.org) e CISA ADP |
Características do ataque
O vetor CVSS decodificado. Descreve o ataque, não a sua exposição a ele.
Todas as pontuações coletadas
As fontes pontuam de forma independente e podem discordar; cada linha diz quem pontuou e em qual versão.
| Nota | Versão | Severidade | Explor. | Impacto | Pontuado por |
|---|---|---|---|---|---|
| 6.1 | CVSS 3.1 | Média | 2.8 | 2.7 | security-advisories@github.com via NIST National Vulnerability Database |
| 6.1 | CVSS 3.1 | Média | — | — | GitHub_M via CVE Program (cve.org) e CISA ADP |
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N (nota exibida no topo: security-advisories@github.com) Fraqueza MITRE
Classe de fraqueza segundo o catálogo CWE do MITRE.
EPSS ao longo do tempo FIRST
13/10/2026 → 14/10/2026 · 2 leitura(s) · máximo 0.28%
Detecção
Derivado do vetor CVSS e da classe da fraqueza. Pontos de partida, não regras testadas.
- Priorize telemetria de borda para o componente exposto na rede (proxy, WAF, IDS/IPS).
- Monitore relatórios de violação de CSP e payloads de script em parâmetros refletidos.
Linha do tempo
O que aconteceu com esta CVE, do mais recente ao mais antigo.
- 2026
- Produtos afetados adicionados · apostrophecms/apostrophe, apostrophecms/sanitize-html
- Avaliação SSVC atualizada
- Ficha publicada
- Correção documentada
- CVSS alterado · 6.1
- Status na fonte alterado · → Analyzed
- Registro criado nesta base
- CVE publicada
Atividade das fontes
Leituras que se repetem foram contadas em vez de listadas.
- 1× Descrição oficial atualizada · 13/10/2026 – 13/10/2026
Referências
2 no registro
Em outras páginas do site
CVEs relacionadas (mesmos produtos)
- Média CVE-2026-110904 Incorrect Authorization em Apostrophecms 16 h
- Crítica CVE-2026-53609 Apostrophe has Server-Side Prototype Pollution in apos.util.set via patch operators that leads to process-wide authorization bypass 12/06/2026
- Baixa CVE-2026-53607 @apostrophecms/file pretty-URL Vulnerable to Unauthenticated SSRF via Host header 12/06/2026
- Média CVE-2026-53606 sanitize-html has an incomplete URI scheme validation that allows javascript: URIs through action, formaction, data, poster, and background attributes 12/06/2026
- Média CVE-2026-45014 Apostrophe Vulnerable to Stored Cross-Site Scripting via Unsanitized User Display Name in Draft Version Tooltip 12/06/2026
- Crítica CVE-2026-44990 Apostrophe has default XSS via `xmp` raw-text passthrough in `sanitize-html` 12/06/2026
Não consta em nenhuma fonte consultada
Listado em vez de deixado em branco: um campo vazio e um não medido parecem iguais na tela, e só um deles é motivo para procurar em outro lugar.
- Nenhum IOC confirmado (IPs, domínios, hashes ou artefatos de malware) fornecido.
- Nenhum inventário de ativos, controle compensatório ou evidência de implantação de patch da sua organização.
- Nenhuma captura de tráfego de exploração, amostra de log ou caso de incidente.
Respondido a partir deste registro
Texto montado apenas com os campos acima — sem afirmações adicionais.
O que os defensores devem saber primeiro?
CVE-2026-40186 é "ApostropheCMS: sanitize-html allowedTags Bypass via Entity-Decoded Text in nonTextTags Elements", de severidade Média. Afeta Apostrophe (Apostrophecms); as versões estão na tabela de escopo. Não está na CISA KEV, o que não exclui exploração. CVSS 6.1 descreve a severidade técnica. EPSS 0.28% estima a probabilidade de exploração em 30 dias; nenhum dos dois substitui o contexto dos seus ativos. Verifique primeiro se ativos expostos ou críticos executam as versões afetadas, aplique as correções ou mitigações do fabricante e preserve logs para análise.
Comentários
Discussão técnica moderada. Leia as regras da comunidade.
Nenhum comentário ainda.
Entre ou crie uma conta para comentar e sugerir correções.