xmldom PI grammar regex ReDoS: quadratic backtracking on unterminated processing instructions
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-1333.
Summary
xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) DOMParser and XMLSerializer module. From 0.9.0-beta.9 until 0.9.11, the processing-instruction production in lib/grammar.js lets the greedy S+ separator and lazy Char*? data group repeatedly repartition a long whitespace tail when the required closing ?> is absent. Both parsePI and parseProcessingInstruction apply the expression to the entire remaining source, causing quadratic backtracking during DOMParser.parseFromString() under default options and allowing a small unauthenticated XML input to stall the Node.js event loop. This issue is fixed in @xmldom/xmldom version 0.9.11.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| xmldom | xmldom | 0.9.0-beta.9 to before 0.9.11 | 0.9.11 | Patch available | CNA |
| xmldom | xmldom | 0.9.0-beta.9 to before 0.9.11 | 0.9.11 | Patch available | CNA |
| — | @xmldom/xmldom (npm) | 0.9.0-beta.9 to before 0.9.11 | 0.9.11 | Patch available | GHSA-g53g-w8rj-fmg7 |
- xmldom Vendorxmldom Affected 0.9.0-beta.9 to before 0.9.11 Fixed in 0.9.11 Patch available CNA
- xmldom Vendorxmldom Affected 0.9.0-beta.9 to before 0.9.11 Fixed in 0.9.11 Patch available CNA
- @xmldom/xmldom (npm) Vendor— Affected 0.9.0-beta.9 to before 0.9.11 Fixed in 0.9.11 Patch available GHSA-g53g-w8rj-fmg7
Remediation
- Fix · CNA xmldom (xmldom) Fixed in 0.9.11
- Fix · CNA xmldom (@xmldom) Fixed in 0.9.11
- Fix · GHSA-g53g-w8rj-fmg7 @xmldom/xmldom (npm) Fixed in 0.9.11 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
Not affected: 8 products
- Red Hat Build of Podman Desktop
- Red Hat Developer Hub 1
- Red Hat Enterprise Linux 10
- Red Hat Enterprise Linux 8
- Red Hat Enterprise Linux 9
- Red Hat Fuse 7
- Red Hat OpenShift AI (RHOAI)
- Red Hat OpenShift Container Platform 4
Timeline
- 2026-10-02 Threatist record created from CVE-2026-83606
- 2026-10-03 Alias added: GHSA-g53g-w8rj-fmg7
- 2026-10-27 Affected versions changed · Red Hat
References
More xmldom vulnerabilities
- TI-2022-18728 xmldom allows multiple root nodes in a DOM CVSS 3.1CRITICAL 9.8
- TI-2026-57717 xmldom: requireWellFormed DocType publicId/systemId validation is bypassable via an embedded line terminator CVSS 4.0HIGH 8.7
- TI-2026-57716 xmldom: requireWellFormed element/attribute name validation is bypassable via an embedded line terminator CVSS 4.0HIGH 8.7
- TI-2026-57715 xmldom: Processing Instruction Target Injection Bypasses requireWellFormed CVSS 4.0HIGH 8.7
- TI-2026-57714 xmldom: Quadratic-memory consumption CVSS 4.0HIGH 8.7
- TI-2026-57712 xmldom: Quadratic-time attribute deduplication CVSS 4.0HIGH 8.7
Sources
- CVE-2026-83606 · CVE Program
- CVE-2026-83606 · NVD
- FIRST EPSS
- GHSA-g53g-w8rj-fmg7 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-83606 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences