CVE-2026-83606
published 2026-09-01CVE-2026-83606: 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…
PriorityP352high8.7CVSS 4.0
AVNACLATNPRNUINVCNVINVAHSCNSINSANEXCRXIRXARXMAVXMACXMATXMPRXMUIXMVCXMVIXMVAXMSCXMSIXMSAXSXAUXRXVXREXUX
EPSS
0.52%
43.6th percentile
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.
Affected
3 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| openshift4 | ose-console | — | — |
| xmldom | xmldom | — | — |
| xmldom | xmldom | >= 0.9.0-beta.9 < 0.9.11 | 0.9.11 |
CVSS provenance
nvdv4.08.7HIGHCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vendor_redhat8.7HIGH
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
GHSA
xmldom PI grammar regex ReDoS: quadratic backtracking on unterminated processing instructions
ghsa·2026-09-08
CVE-2026-83606 [HIGH] CWE-1333 xmldom PI grammar regex ReDoS: quadratic backtracking on unterminated processing instructions
xmldom PI grammar regex ReDoS: quadratic backtracking on unterminated processing instructions
## Summary
`@xmldom/xmldom`'s processing-instruction (PI) grammar regex exhibits quadratic-time backtracking
(ReDoS) when parsing an **unterminated** processing instruction. A single small XML document
containing `` forces the regular
expression engine into O(n²) work, stalling the Node.js event loop. The input is parsed with
`DOMParser.parseFromString` under **default options**, so it is reachable from unauthenticated,
network-delivered XML (SOAP/SAML, webhooks, uploads, XML APIs).
## Details
The PI production in `lib/grammar.js` compiles (flags `mu`) to:
```
^
^^^ S+ greedy ^^^ Char*? lazy
```
- `lib/grammar.js` line 261: https://github.com/xmldom/xmldom/blob/bb7a085dc5ba1eea3212388509b97b
Red Hat
xmldom: xmldom: Denial of Service via regular expression backtracking in processing instructions
vendor_redhat·2026-09-01·CVSS 8.7
CVE-2026-83606 [HIGH] CWE-1333 xmldom: xmldom: Denial of Service via regular expression backtracking in processing instructions
xmldom: xmldom: Denial of Service via regular expression backtracking in processing instructions
A flaw was found in xmldom, a JavaScript XML DOM parser. This vulnerability, a Regular Expression Denial of Service (ReDoS), occurs due to inefficient processing of unterminated processing instructions in XML input. A remote, unauthenticated attacker can send a specially crafted XML input, causing quadratic backtracking and stalling the Node.js event loop. This can lead to a Denial of Service (DoS) for applications using xmldom.
Package: openshift4/ose-console (Red Hat OpenShift Container Platform 4) - Affected
No detection rules found.
No public exploits indexed.
Bugzilla
CVE-2026-83606 jupyterlab: xmldom: Denial of Service via regular expression backtracking in processing instructions [epel-all]
bugzilla·2026-09-18·CVSS 8.7
CVE-2026-83606 [HIGH] CVE-2026-83606 jupyterlab: xmldom: Denial of Service via regular expression backtracking in processing instructions [epel-all]
CVE-2026-83606 jupyterlab: xmldom: Denial of Service via regular expression backtracking in processing instructions [epel-all]
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.
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 quadra
Bugzilla
CVE-2026-83606 jupyterlab: xmldom: Denial of Service via regular expression backtracking in processing instructions [fedora-all]
bugzilla·2026-09-18·CVSS 8.7
CVE-2026-83606 [HIGH] CVE-2026-83606 jupyterlab: xmldom: Denial of Service via regular expression backtracking in processing instructions [fedora-all]
CVE-2026-83606 jupyterlab: xmldom: Denial of Service via regular expression backtracking in processing instructions [fedora-all]
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.
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 quad
Bugzilla
CVE-2026-83606 xmldom: xmldom: Denial of Service via regular expression backtracking in processing instructions
bugzilla·2026-09-01·CVSS 8.7
CVE-2026-83606 [HIGH] CVE-2026-83606 xmldom: xmldom: Denial of Service via regular expression backtracking in processing instructions
CVE-2026-83606 xmldom: xmldom: Denial of Service via regular expression backtracking in processing instructions
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.
https://github.com/xmldom/xmldom/commit/73df6b8bdbd86f904b9e8c3ab9c49aa54ef2802ehttps://github.com/xmldom/xmldom/pull/1039https://github.com/xmldom/xmldom/releases/tag/0.9.11https://github.com/xmldom/xmldom/security/advisories/GHSA-g53g-w8rj-fmg7https://github.com/xmldom/xmldom/security/advisories/GHSA-g53g-w8rj-fmg7
2026-09-01
Published