Skip to main content

@xmldom/xmldom CVE-2026-83606

| EUVDEUVD-2026-69216 HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-09-01 GitHub_M GHSA-g53g-w8rj-fmg7
8.7
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send HTTP request with malformed PI XML
  2. Delivery
    DOMParser.parseFromString() invokes grammar.js PI regex
  3. Exploit
    Greedy S+ and lazy Char*? repartition whitespace tail quadratically
  4. Execution
    Node.js event loop stalls
  5. Impact
    All concurrent requests denied

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the target application uses @xmldom/xmldom in the version range 0.9.0-beta.9 through 0.9.10 and passes attacker-controlled data to DOMParser.parseFromString() under the library's default options - no non-default xmldom configuration is required. The CVSS vector PR:N/UI:N confirms no authentication and no user interaction are needed. Exploitation is limited to Node.js runtime environments (the library has no native bindings and is JavaScript-only) and strictly to the affected version range. Applications on versions prior to 0.9.0-beta.9 or on 0.9.11 and later are not affected. The key limiting factor for defenders is whether the application exposes an XML-parsing endpoint to unauthenticated or lightly authenticated callers - internal-only parsers with network-layer access controls reduce realistic exploitability despite the PR:N vector.

Impact

The CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VA:H) accurately characterizes a network-reachable exploit requiring no authentication, no special attack requirements, and no user interaction, with high availability impact on the vulnerable system. EPSS data was not supplied in the intelligence feed, so probabilistic exploitation likelihood cannot be quantified; however, the attack mechanism is algorithmically simple - crafting a small malformed PI element with a whitespace tail - placing effective exploit effort near zero for any developer familiar with ReDoS techniques. No CISA KEV listing is indicated, and no separately published POC has been identified, meaning this is not confirmed as actively exploited at time of analysis. The real-world risk profile is more severe than a typical library-level DoS because Node.js operates a single-threaded event loop: one stalled regex call blocks all concurrent I/O, converting a per-request parse delay into a full service outage. Services accepting external XML in the affected version range, regardless of their scale, should treat patching as urgent rather than deferring to a scheduled maintenance window. The absence of scope change (SC/SI/SA:N) correctly reflects that the impact is contained to the parsing process itself, not propagated to downstream systems.

Exploit ScenarioDerived

An attacker submits an HTTP request containing a small XML payload such as '<?foo ' followed by several thousand space characters and no closing ?>, targeting any endpoint that passes request body content to DOMParser.parseFromString(). The xmldom regex engine enters quadratic backtracking over the whitespace tail, blocking the Node.js event loop for seconds per request with only kilobytes of input, causing all concurrent requests to queue and the service to appear fully unresponsive. No public exploit code has been identified, but the advisory and patch diff make the attack trivially reproducible.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 01, 2026

Quadratic regex backtracking in @xmldom/xmldom versions 0.9.0-beta.9 through 0.9.10 allows unauthenticated remote attackers to stall the Node.js event loop by supplying a small malformed XML document containing an unterminated processing instruction with a long whitespace tail. The flaw resides in the processing-instruction production regex in lib/grammar.js, where the greedy S+ separator and lazy Char*? data group endlessly repartition whitespace when the required closing ?> is absent, causing O(n²) backtracking in both parsePI and parseProcessingInstruction. No public exploit has been identified at time of analysis, but the fix commit and GitHub Security Advisory GHSA-g53g-w8rj-fmg7 fully document the vulnerable code path, making independent reproduction straightforward. Vendor-released patch: 0.9.11.

RemediationAI

Upgrade to @xmldom/xmldom version 0.9.11 or later via npm (npm install @xmldom/xmldom@0.9.11), confirmed by the official GitHub release at https://github.com/xmldom/xmldom/releases/tag/0.9.11 and the merged fix in PR #1039. If an immediate upgrade is blocked by dependency constraints, two compensating controls can bound exposure: first, validate or reject incoming XML at the application boundary before it reaches DOMParser.parseFromString() - specifically, reject documents where a <? sequence is not followed by a corresponding ?> within a reasonable character limit, eliminating the malformed-PI trigger with no functional impact on well-formed input; second, execute parsing inside a worker thread with a hard timeout (e.g., worker_threads with a timeout-based abort) to cap event-loop stall duration, accepting the trade-off that some large but legitimate documents may be incorrectly terminated. Neither workaround is a substitute for patching, as both add operational complexity and potential false-positive rejection of valid XML.

Affected VersionsENISA

xmldom 0.9.0-beta.9, < 0.9.11

Affected Packages

npm @xmldom/xmldom fix: 0.9.11
euvd xmldom_0_9_0_beta_9 fix: 0.9.11

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

xmldom (@xmldom/xmldom on npm) is a pure JavaScript implementation of the W3C XML DOM Level 2 Core specification, widely used in Node.js applications to parse and serialize XML without native bindings. The root cause is CWE-400 (Uncontrolled Resource Consumption) triggered by a pathological regular expression. The processing-instruction (PI) production in lib/grammar.js combined a greedy S+ quantifier (matching whitespace separators) with a lazy Char*? group (matching PI data); when a PI element lacks its required ?> terminator, the JavaScript regex engine repeatedly attempts to split the trailing whitespace between these two groups across every possible boundary, yielding O(n²) backtracking steps proportional to the whitespace length. Both the parsePI and parseProcessingInstruction functions applied this regex to the full remaining source buffer, amplifying the effect. Affected CPE: cpe:2.3:a:xmldom:xmldom:*:*:*:*:*:*:*:* and cpe:2.3:a:@xmldom:xmldom:*:*:*:*:*:*:*:* for versions 0.9.0-beta.9 through 0.9.10. The fix (PR #1039, commit 73df6b8) inserts a negative lookahead (?!S) immediately after the S+ group, asserting that the data portion begins with a non-whitespace character and thereby eliminating the ambiguous overlap that drives backtracking.

Know when Xmldom gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Network-reachable with no privileges or interaction required; impact is pure availability (event-loop stall); scope is unchanged as only the parsing process is affected.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Red Hat 7.5 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 01, 2026 - 16:02 EUVD
CVE Published
Sep 01, 2026 - 14:21 cve.org
HIGH 8.7

DescriptionCVE.org

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.

Technical POC Analysis

Quadratic regular-expression backtracking (CWE-400 Uncontrolled Resource Consumption, mapped by the advisory also to CWE-1333 Inefficient Regular Expression Complexity) in the processing-instruction…

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

The @xmldom library versions 0.9.0-beta.9 through 0.9.10 contain a denial-of-service vulnerability exploitable by remote, unauthenticated attackers through malformed XML input. Organizations using these versions in production risk application unavailability and should immediately upgrade to version 0.9.11.

Business Impact: High
Compensating Controls

Apply vendor patch: @xmldom/xmldom 0.9.11

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
Medium
popular npm XML parsing library, moderate Node.js adoption
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Xmldom

View all
CVE-2022-39353 CRITICAL POC
9.8 Nov 02

xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) `DOMParser` and `XMLSerializer` module. Rated crit

CVE-2026-83610 MEDIUM POC
6.3 Sep 01

XML injection via EntityReference in xmldom enables attacker-controlled XML markup to escape entity-reference boundaries

CVE-2022-37616 CRITICAL
9.8 Oct 11

A prototype pollution vulnerability exists in the function copy in dom.js in the xmldom (published as @xmldom/xmldom) pa

CVE-2026-83615 HIGH POC
8.7 Sep 01

Quadratic namespace-map allocation in xmldom's SAX parser allows unauthenticated remote attackers to exhaust the Node.js

CVE-2026-83614 HIGH POC
8.7 Sep 01

Two independent quadratic-complexity denial-of-service paths in the xmldom JavaScript XML parser allow remote unauthenti

CVE-2026-83616 HIGH POC
8.7 Sep 01

Processing-instruction target injection in the @xmldom/xmldom JavaScript library allows XML structure breakout through u

CVE-2026-83608 HIGH POC
8.7 Sep 01

XML injection in the xmldom serializer allows a crafted DocumentType.name containing '>' or whitespace to prematurely cl

CVE-2026-83607 HIGH POC
8.7 Sep 01

XML injection and cross-site scripting in the xmldom JavaScript library allows attacker-controlled tag names to be injec

CVE-2026-83605 HIGH POC
8.7 Sep 01

XML injection in the xmldom JavaScript library allows crafted attribute names to break out of attribute context during s

CVE-2026-83613 HIGH POC
8.7 Sep 01

Quadratic attribute-processing complexity in xmldom's DOMParser enables remote unauthenticated denial of service against

CVE-2026-83618 HIGH POC
8.7 Sep 01

XML injection in @xmldom/xmldom versions 0.9.10 and 0.9.11 bypasses the requireWellFormed serializer's DocumentType vali

CVE-2026-83617 HIGH POC
8.7 Sep 01

XML injection in @xmldom/xmldom 0.9.11 allows attackers who supply crafted element or attribute names containing ECMAScr

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Module for Python 3 15 SP7 Not-Affected
SUSE Linux Enterprise Server 15 SP7 Not-Affected
SUSE Linux Enterprise Server for SAP Applications 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy