IA Squad
BuscarPT
js · dompurifyCrítico

DOMPurify: IN_PLACE sanitize falha em <form> permitindo XSS por clobbering

DOMPurify.sanitize com IN_PLACE: true em um elemento <form> não sanitiza atributos quando um filho faz clobber de propriedade checada por _isClobbered. _forceRe

16 Jun 2026Leitura 1 minSeveridade: mexe agora

O que mudou

DOMPurify.sanitize com IN_PLACE: true em um elemento <form> não sanitiza atributos quando um filho faz clobber de propriedade checada por _isClobbered. _forceRemove é no-op em nós sem pai e _sanitizeAttributes pula nós clobbered. Isso permite que event handlers e outros atributos sobrevivam, levando a XSS.

Quem isso afeta

Todos os usuários de DOMPurify ≤ 3.4.5 (incluindo main em 89da34e) que chamam DOMPurify.sanitize(node, { IN_PLACE: true }) onde node é um <form> construído de HTML não confiável e depois inserido no documento ativo.

O que fazer hoje

Evite usar IN_PLACE: true com elementos <form> não confiáveis até que uma correção seja lançada. Como workaround, serialize a saída sanitizada para string e faça o re-parse para quebrar o clobber.

A esteira
Coletado Auditado Redigido Publicado