Quick answers
- Is This vulnerability exploited in the wild?
- No. Junglewise Threat Intelligence has no report of This vulnerability being exploited in the wild.
- How severe is This vulnerability?
- Critical severity, with a CVSS score of 4, published 22 October 2026.
- Which products and versions are affected?
- Cure53 DOMPurify 3.4.4 through 3.4.16; DOMPurify 3.4.4 through 3.4.16; dompurify (npm) >= 3.4.4, <= 3.4.16, SEMVER:introduced=3.4.4,fixed=3.4.17.
- Is there a fix for This vulnerability?
- Yes. dompurify (npm): upgrade to 3.4.17 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is This vulnerability attacked?
- It is attacked over the network, in a software library.
- Am I affected?
- Check whether you run Cure53 DOMPurify, DOMPurify or 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.17 or later
npm install dompurify@3.4.17
Technical details
When SAFE_FOR_TEMPLATES is enabled with DOM-returning modes (IN_PLACE, RETURN_DOM, or RETURN_DOM_FRAGMENT), the post-walk safety check _scrubTemplateExpressions does not recurse into attached shadow roots, only into <template> elements. An attacker can split a template expression (e.g., "${alert(1)}") across text nodes separated by disallowed elements; when the disallowed elements are stripped during sanitization, the fragments become adjacent and merge into a complete expression that survives. This requires an attacker-supplied DOM node with an attached shadow root and downstream template evaluation.
Affected products
- Cure53 DOMPurify 3.4.4 through 3.4.16
Timeline
- 2026-10-22: disclosed