Skip to main content
← All vulnerabilities
CVE-2026-61784GHSA-J8R4-32C5-33RC

xhtml-purifier has HTML attribute-injection (sanitizer bypass) that leads to XSS

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 0.4.3
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

Summary

xhtml-purifier is a Node.js library to take in raw/unknown/untrusted HTML and output cleaned, purified, trusted HTML. Versions prior to 0.4.3 do not HTML-entity-encode attribute values when serializing its sanitized output. In attributeString() (XHTMLPurifier.js, around line 148) the attribute value is concatenated directly into a double-quoted attribute without encoding. As a result, an attacker-controlled value in any allowed attribute (class, style, title, alt, src, href) can include a double-quote character to break out of the attribute and inject an additional attribute, such as a JavaScript event handler (for example onmouseover or onerror). The injected handler survives sanitization and executes when the output is rendered, which is a sanitizer bypass leading to cross-site scripting. The fix in version 0.4.3 HTML-entity-encodes attribute values before serialization.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • cstigler node-xhtml-purifier

    fixed in 0.4.3

  • xhtml-purifiernpm

    fixed in 0.4.3

References 2

GitHub · cstigler/node-xhtml-purifier