CVE-2026-65902
Published:July 23, 2026
Updated:July 24, 2026
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.
Affected Packages
dompurify (CDN_JS):
Affected version(s) >=0.7.0 <3.4.7Fix Suggestion:
Update to version 3.4.7https://github.com/cure53/DOMPurify.git (GITHUB):
Affected version(s) >=v0.3 <3.4.7Fix Suggestion:
Update to version 3.4.7dompurify (NPM):
Affected version(s) >=0.4.0 <3.4.7Fix Suggestion:
Update to version 3.4.7dompurify (NPM):
Affected version(s) >=0.4.0 <3.4.7Fix Suggestion:
Update to version 3.4.7Related Resources (4)
Do you need more information?
Contact UsCVSS v4
Base Score:
5.3
Attack Vector
NETWORK
Attack Complexity
LOW
Attack Requirements
NONE
Privileges Required
NONE
User Interaction
PASSIVE
Vulnerable System Confidentiality
LOW
Vulnerable System Integrity
LOW
Vulnerable System Availability
NONE
Subsequent System Confidentiality
LOW
Subsequent System Integrity
LOW
Subsequent System Availability
NONE
CVSS v3
Base Score:
6.1
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
NONE
User Interaction
REQUIRED
Scope
CHANGED
Confidentiality
LOW
Integrity
LOW
Availability
NONE
EPSS
Base Score:
0.19