{"id":"CVE-2026-83606","title":"xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) DOMParser and XMLSerializer module","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*…","severity":"high","cwe":["CWE-400","CWE-1333"],"vendor":"xmldom","product":"@xmldom/xmldom","affected":["@xmldom/xmldom >= 0.9.0-beta.9, <= 0.9.10"],"patched":["@xmldom/xmldom 0.9.11"],"published":"2026-09-01","updated":"2026-09-08","sourceUpdated":"2026-09-08T21:11:31.703","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-83606","references":[{"url":"https://github.com/xmldom/xmldom/commit/73df6b8bdbd86f904b9e8c3ab9c49aa54ef2802e","label":"security-advisories@github.com"},{"url":"https://github.com/xmldom/xmldom/pull/1039","label":"security-advisories@github.com"},{"url":"https://github.com/xmldom/xmldom/releases/tag/0.9.11","label":"security-advisories@github.com"},{"url":"https://github.com/xmldom/xmldom/security/advisories/GHSA-g53g-w8rj-fmg7","label":"security-advisories@github.com"},{"url":"https://github.com/xmldom/xmldom/security/advisories/GHSA-g53g-w8rj-fmg7","label":"134c704f-9b21-4f2e-91b3-4a467353bcc0"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-83606"},{"url":"https://github.com/advisories/GHSA-g53g-w8rj-fmg7"},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-83606.json"},{"url":"https://access.redhat.com/security/cve/CVE-2026-83606"},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2526808"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-83606"}],"tags":["nvd","ghsa","npm","csaf","vex","red-hat"],"epss":0.00301,"epssPercentile":0.22981,"aliases":["GHSA-g53g-w8rj-fmg7"],"ecosystem":"npm","ingestedAt":"2026-09-08T21:11:12.322Z","cvss":7.5,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","cvssSource":"vendor","slug":"CVE-2026-83606","body":"## Overview\n\nxmldom 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.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Package advisory (CVE-2026-83606)\n\nAffected packages:\n\n- `@xmldom/xmldom >= 0.9.0-beta.9, <= 0.9.10`\n\nPatched in:\n\n- `@xmldom/xmldom 0.9.11`\n\nSource: https://github.com/advisories/GHSA-g53g-w8rj-fmg7\n\n## Vendor advisories\n\n- **Red Hat VEX** · Important · affected: Red Hat OpenShift Container Platform 4 · no fix planned: Red Hat OpenShift Container Platform 4 · updated 2026-09-18 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-83606.json)","depth":"twilight","depthScore":41,"depthScoreParts":{"impact":41.3,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[{"seq":206974,"id":"CVE-2026-83606","ts":1789749726452,"field":"cvss","old":null,"new":"7.5"}]}