CVE Catalog

CVE-2026-65902

MediumCVSS 6.1
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.36%

29th percentile - higher than 29% of all known CVEs

Summary

DOMPurify before 3.4.7 passes direct references to the module-level DEFAULT_ALLOWED_TAGS and DEFAULT_ALLOWED_ATTR sets to the uponSanitizeElement and uponSanitizeAttribute hooks when sanitize is called without an explicit cfg. A hook that mutates these fields permanently widens the default allow-lists for the lifetime of the DOMPurify instance, so subsequent default-config sanitize calls inherit the widened defaults.

Risk Assessment

An attacker can leverage poisoned tag or attribute names that survive sanitization, leading to XSS in applications using DOMPurify with default configuration. The risk persists until a new DOMPurify instance is constructed.

Recommendation

Update DOMPurify to version 3.4.7 or later. Avoid hooks that mutate data.allowedTags and data.allowedAttributes; construct new DOMPurify instances if needed.

Other vulnerabilities in DOMPurify

See all
Original NVD description (English source)

DOMPurify before 3.4.7 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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS