Read the docs

DOM XSS in DOMPurify via IN_PLACE hook-detached subtrees

Priority MEDIUM 56CWE-79Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
Active
Attack complexity
Low
Attack requirements
None
Impact type
Cross-site scripting
Confidentiality · integrity · availability
None · None · None
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-79.

Summary

DOMPurify before 3.4.17 contains a cross-site scripting flaw (CWE-79) where an IN_PLACE hook that removes a parent or sibling node leaves attacker markup in the detached subtree unsanitized. Event handlers in that markup stay armed, so an element such as img onerror fires after sanitize() returns. A remote attacker without privileges can cause DOM XSS, though user interaction is required.

Written with Claude Haiku 5.5 from the sources below · 2026-11-02

Description from the CNA

DOMPurify before 3.4.17 contains a cross-site scripting vulnerability that allows attackers to keep event handlers armed when an IN_PLACE hook removes a parent or sibling node. Attacker markup in detached subtrees is never walked or neutralized, so handlers like img onerror fire after sanitize() returns, causing DOM XSS.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00164 5th percentileScored 2026-11-07
Fix Fixed DOMPurify (cure53): 3.4.17

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
cure53DOMPurifybefore 3.4.173.4.17Patch availableCNA
  • DOMPurify Vendorcure53 Affected before 3.4.17 Fixed in 3.4.17 Patch available CNA

CPE names Threatist (inferred) · 1

Inferred from how NVD named this product before; not given by a source.

CPEVersionsRoleVendor
cpe:2.3:a:cure53:dompurify:*:*:*:*:*:*:*:*——cure53
  • cpe:2.3:a:cure53:dompurify:*:*:*:*:*:*:*:* Versions — — ·cure53

Remediation

Upgrade DOMPurify to version 3.4.17 or later, which is the fixed version.

Written with Claude Haiku 5.5 from the sources below · 2026-11-02

  • Fix · CNA DOMPurify (cure53) Fixed in 3.4.17

Fixed in the same release

Records fixed by the same vendor advisory or release, as the CNA lists them.

  • Release ·

    cure53 DOMPurify 3.4.17

    3 records Highest priority Priority MEDIUM 3 MEDIUM

    Other records, highest priority first

    • TI-2026-80969 SAFE_FOR_TEMPLATES bypass in DOMPurify enables cross-site scriptingPriority MEDIUM 56
    • TI-2026-80967 Cross-site scripting in DOMPurify via SMIL attributeName bypassPriority MEDIUM 56

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

Not affected: 1 product
  • Red Hat Hardened Images

Timeline

  1. 2026-10-26 Threatist record created from CVE-2026-116803
  2. 2026-10-27 Affected versions changed · Red Hat
  3. 2026-10-27 CVSS score added · Red Hat
  4. 2026-10-27 Alias added: GHSA-77h4-4vqj-j7vc
  5. 2026-10-31 CISA SSVC decision points changed
  6. 2026-10-31 Priority changed: LOW → MEDIUM
  7. 2026-11-02 Affected versions changed · Red Hat

References

  • TI-2026-34986 DOMPurify XSS via `selectedcontent` re-clone CVSS 3.1HIGH 8.2
  • TI-2025-30422 Path traversal in cure53 DOMPurify CVSS 3.1HIGH 7.5
  • TI-2026-29847 DOMPurify: Prototype Pollution to XSS Bypass via CUSTOM_ELEMENT_HANDLING Fallback CVSS 3.1MEDIUM 6.9
  • TI-2026-36811 DOMPurify IN_PLACE Sanitization Bypass via Attached Shadow Root Inside <template>.content CVSS 4.0MEDIUM 6.3
  • TI-2026-36614 DOMPurify: IN_PLACE mode preserves attributes of a clobbered root element, allowing XSS via attacker-controlled root DOM CVSS 3.1MEDIUM 6.1
  • TI-2026-36613 DOMPurify: Cross-realm IN_PLACE sanitization leaves executable markup intact via realm-bound `instanceof` checks CVSS 3.1MEDIUM 6.1
See all 34 →

Sources