CVE-2026-65902
DOMPurify before 3.4.7 Hook Mutation Pollution via allowedTags
Record summary
CVE-2026-65902 has a selected CVSS score of 5.3 (medium).
Description
DOMPurify before 3.4.7 (affected versions <= 3.4.5) passes direct references to the module-level DEFAULT_ALLOWED_TAGS and DEFAULT_ALLOWED_ATTR sets to the uponSanitizeElement and uponSanitizeAttribute hooks via data.allowedTags / data.allowedAttributes when sanitize is called without an explicit cfg.ALLOWED_TAGS / cfg.ALLOWED_ATTR array. A hook that mutates these fields permanently widens the default allow-lists for the lifetime of the DOMPurify instance, so all subsequent default-config sanitize calls inherit the widened defaults and attacker payloads using the poisoned tag/attribute name survive sanitization. removeAllHooks(), clearConfig(), and passing a fresh cfg do not recover the state; only constructing a new DOMPurify instance does.
Exploitation context
CISA SSVC decision
CISA Coordinator · SSVC 2.0.3 · Evaluated Jul 23, 2026 · Source: CVE List
Affected products and versions
2| Product | Source | Version range | Status |
|---|---|---|---|
DOMPurifyBrowse cure53 / DOMPurifyDefault status: unaffected | CVE List | Before 3.4.7 | affected |
| 3.4.7 | unaffected | ||
dompurifyBrowse npm / dompurify | GitHub Advisory | Before 3.4.7 · Fixed in 3.4.7 | affected |