CVE-2026-65902: Trust Boundary Violation in cure53 DOMPurify
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.
AI Analysis
Technical Summary
CVE-2026-65902 describes a vulnerability in DOMPurify versions prior to 3.4.7 where the module-level DEFAULT_ALLOWED_TAGS and DEFAULT_ALLOWED_ATTR sets are passed by reference to sanitization hooks if no explicit allowed tags or attributes are provided. A malicious hook can mutate these sets, permanently expanding the default allow-lists for the lifetime of the DOMPurify instance. Consequently, all future sanitizations using default settings will allow the poisoned tags or attributes, enabling attacker payloads to survive sanitization. Attempts to reset the state via removeAllHooks(), clearConfig(), or passing a fresh configuration do not restore the original defaults; only creating a new DOMPurify instance resets the allow-lists.
Potential Impact
The vulnerability allows an attacker who can influence the sanitization hooks to permanently widen the default allowed tags and attributes, causing subsequent sanitizations to permit malicious content that should have been blocked. This undermines the sanitization guarantees of DOMPurify and can lead to cross-site scripting (XSS) or other injection attacks if exploited.
Mitigation Recommendations
No official patch or fix is currently confirmed. Users should upgrade to DOMPurify version 3.4.7 or later once available to address this issue. Until then, to recover from a poisoned allow-list state, instantiate a new DOMPurify instance rather than relying on removeAllHooks(), clearConfig(), or passing fresh configurations. Monitor the vendor advisory for updates on remediation.
CVE-2026-65902: Trust Boundary Violation in cure53 DOMPurify
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.
CVSS v4.0
Score 5.3medium
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
CVE-2026-65902 describes a vulnerability in DOMPurify versions prior to 3.4.7 where the module-level DEFAULT_ALLOWED_TAGS and DEFAULT_ALLOWED_ATTR sets are passed by reference to sanitization hooks if no explicit allowed tags or attributes are provided. A malicious hook can mutate these sets, permanently expanding the default allow-lists for the lifetime of the DOMPurify instance. Consequently, all future sanitizations using default settings will allow the poisoned tags or attributes, enabling attacker payloads to survive sanitization. Attempts to reset the state via removeAllHooks(), clearConfig(), or passing a fresh configuration do not restore the original defaults; only creating a new DOMPurify instance resets the allow-lists.
Potential Impact
The vulnerability allows an attacker who can influence the sanitization hooks to permanently widen the default allowed tags and attributes, causing subsequent sanitizations to permit malicious content that should have been blocked. This undermines the sanitization guarantees of DOMPurify and can lead to cross-site scripting (XSS) or other injection attacks if exploited.
Mitigation Recommendations
No official patch or fix is currently confirmed. Users should upgrade to DOMPurify version 3.4.7 or later once available to address this issue. Until then, to recover from a poisoned allow-list state, instantiate a new DOMPurify instance rather than relying on removeAllHooks(), clearConfig(), or passing fresh configurations. Monitor the vendor advisory for updates on remediation.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- VulnCheck
- Date Reserved
- 2026-07-23T11:03:13.092Z
- Cvss Version
- 4.0
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a6215a29c2644c7f82072e8
Added to database: 07/23/2026, 13:22:42 UTC
Last enriched: 07/23/2026, 13:40:01 UTC
Last updated: 07/24/2026, 03:47:27 UTC
Views: 7
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.