PT-2026-49557 · Root+5 · @Rootio/Dompurify+3
CVE-2026-49458
·
Publicado
2026-06-15
·
Atualizado
2026-08-31
CVSS v3.1
6.1
Média
| Vetor | AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
Nome do Software Vulnerável e Versões Afetadas
DOMPurify versões anteriores a 3.4.6
Descrição
O DOMPurify não sanitiza corretamente nós do DOM de domínios estrangeiros de mesma origem (como aqueles de um iframe, janela popup ou aba aberta) ao utilizar o método
DOMPurify.sanitize(node, { IN PLACE: true }). O problema ocorre porque a biblioteca utiliza verificações instanceof vinculadas ao reino (realm) contra construtores do reino pai. Como os construtores são únicos para cada reino, essas verificações retornam false para nós de reinos estrangeiros, fazendo com que o sanitizador ignore ramificações de segurança críticas.Detalhes técnicos incluem:
- Bypass de Clobbering: A função
isClobbered()não reconhece elementos<form>de reinos estrangeiros, permitindo que atributos controlados por atacantes, comoonmouseoverouonclick, sobrevivam. - Bypass de Template: A função
sanitizeShadowDOM()e o iterador principal não reconhecem objetosDocumentFragmentna propriedade.contentde elementos<template>de reinos estrangeiros, deixando marcações executáveis dentro do template. - Bypass de Shadow DOM: A função
sanitizeAttachedShadowRoots()não reconhece objetosShadowRootde reinos estrangeiros, ignorando a sanitização de toda a subárvore do shadow DOM.
Isso pode levar a cross-site scripting (XSS) quando a aplicação posteriormente insere ou ativa o nó sanitizado no DOM ativo.
Recomendações
Atualize o DOMPurify para a versão 3.4.6.
Como solução temporária, evite usar a opção
IN PLACE: true ao sanitizar nós do DOM criados em um reino diferente da instância do DOMPurify.Exploit
Correção
Protection Mechanism Failure
XSS
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
@Rootio/Dompurify
Dompurify
Dompurify.Js
Node-Dompurify