{"id":"CVE-2026-65902","summary":"DOMPurify before 3.4.7 Hook Mutation Pollution via allowedTags","details":"DOMPurify before 3.4.7 (affected versions \u003c= 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.","aliases":["GHSA-76mc-f452-cxcm"],"modified":"2026-07-25T04:14:50.591164391Z","published":"2026-07-23T13:16:20.528Z","related":["CGA-wf33-vm7f-4q7r"],"database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/65xxx/CVE-2026-65902.json","cna_assigner":"VulnCheck","cwe_ids":["CWE-501"]},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/65xxx/CVE-2026-65902.json"},{"type":"ADVISORY","url":"https://github.com/cure53/DOMPurify/security/advisories/GHSA-76mc-f452-cxcm"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-65902"},{"type":"ADVISORY","url":"https://www.vulncheck.com/advisories/dompurify-before-hook-mutation-pollution-via-allowedtags"},{"type":"FIX","url":"https://github.com/cure53/DOMPurify/commit/7996f1dc78eb8b7922388aed75d94a9f8fad9a36"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/cure53/dompurify","events":[{"introduced":"0"},{"fixed":"ca30f070c360df162a3e3848e80e6fd3c9e74bff"},{"fixed":"7996f1dc78eb8b7922388aed75d94a9f8fad9a36"}],"database_specific":{"source":["DESCRIPTION","REFERENCES"],"extracted_events":[{"introduced":"0"},{"fixed":"3.4.7"}]}}],"versions":["3.4.6","3.4.5","3.4.4","3.4.3","3.4.2","3.4.1","3.4.0","3.3.3","3.2.3","3.1.3","3.0.4","2.4.3","2.4.2","2.4.1","2.4.0","2.3.12","2.3.11","2.3.10","2.3.9","2.3.8","2.3.6","2.3.5","2.3.4","2.3.3","2.3.2","2.3.1","2.3.0","2.2.9","2.2.8","2.2.7","2.2.6","2.2.4","2.2.3","2.2.2","2.2.0","2.1.1","2.1.0","2.0.17","2.0.16","2.0.15","2.0.14","2.0.13","2.0.12","2.0.11","2.0.10","2.0.9","2.0.8","2.0.6","2.0.5","2.0.4","2.0.3","2.0.2","2.0.1","2.0.0","1.0.11","1.0.10","1.0.9","1.0.8","1.0.7","1.0.6","1.0.5","1.0.4","1.0.3","1.0.2","1.0.1","1.0.0","0.9.0","0.8.9","0.8.8","0.8.7","0.8.6","0.8.5","0.8.4","0.8.3","0.8.2","0.8.1","0.8.0","0.7.3","0.7.2","0.7.1","0.7.0","0.6.7","0.6.6","0.6.5","0.6.4","0.6.3","0.6.2","0.6.1","0.6.0","0.4.5","0.4.4","0.4.3","0.4.2","0.4","0.3","v0.3","0.1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-65902.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N"}]}