CVE-2026-65899: cure53 DOMPurify state contamination in Trusted Types policy

CVE-2026-65899 · Severity: medium · CVSS 6.1 · Published 2026-07-23

DOMPurify is a popular library used to clean and sanitize HTML to prevent security vulnerabilities like Cross-Site Scripting (XSS). A flaw in how the library manages its internal configuration allows security settings from one task to "leak" into subsequent tasks if the library instance is reused. This could allow an attacker to bypass security filters and execute malicious scripts in a user's browser, particularly in complex web applications that share a single sanitizer across different components.

Technologies: dompurify (npm). Vendors: npm.

Quick answers

Is CVE-2026-65899 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-65899 being exploited in the wild.
How severe is CVE-2026-65899?
Medium severity, with a CVSS score of 6.1, published 23 July 2026.
Which products and versions are affected?
dompurify (npm) SEMVER:introduced=0,fixed=3.4.9.
Is there a fix for CVE-2026-65899?
Yes. dompurify (npm): upgrade to 3.4.9 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-65899 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-65899?
Check whether you run dompurify (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • dompurify (npm): upgrade to 3.4.9 or later
    npm install dompurify@3.4.9

Technical details

A state contamination vulnerability exists in DOMPurify versions 3.0.0 through 3.4.8 due to the 'clearConfig()' method failing to reset the internal 'trustedTypesPolicy' and 'emptyHTML' variables. When a DOMPurify instance is reused across different trust boundaries, a previously set 'TRUSTED_TYPES_POLICY' remains active even after a configuration reset. If a subsequent caller requests 'RETURN_TRUSTED_TYPE' output, they receive a 'TrustedHTML' object generated by the stale, potentially unsafe policy instead of a clean default. This can lead to Cross-Site Scripting (XSS) at a Trusted Types sink. The issue is fixed in version 3.4.9 by ensuring the Trusted Types state is properly cleared during configuration resets.

Affected products

  • cure53 DOMPurify 3.0.0 to 3.4.8

Identifiers

  • CVE-2026-65899
  • GHSA-vxr8-fq34-vvx9

Timeline

  • 2026-06-10: advisory: GitHub Security Advisory GHSA-vxr8-fq34-vvx9 published
  • 2026-07-23: disclosed: CVE-2026-65899 published to NVD
  • 2026-07-23: patched: Fix identified in version 3.4.9

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.