Skip to main content

xmldom CVE-2026-83615

| EUVDEUVD-2026-69236 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-09-01 GitHub_M GHSA-965w-775f-mr7g
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 compact XML with repeated namespace declarations
  2. Delivery
    xmldom SAX parser clones O(N²) namespace maps per element
  3. Exploit
    Node.js heap exhausted
  4. Execution
    process crashes or becomes unresponsive
  5. Impact
    denial of service achieved

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation 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

No special server configuration is required - the vulnerability is triggered by the default behavior of DOMParser.parseFromString in any xmldom version within the affected range. The sole prerequisite is that attacker-supplied data reaches a parseFromString call without a prior hard limit on document size or namespace depth. Exploitation is constrained by: the affected package must be installed and reachable in the code path handling attacker input; users of @xmldom/xmldom >= 0.8.15 or >= 0.9.12 are fully protected by the prototype-chain fix; and applications enforcing a strict incoming byte limit (e.g., <= 64 KB) significantly raise the attack cost, though they do not fully eliminate the risk given XML namespace compressibility.

Impact

The CVSS 4.0 score of 8.7 with vector AV:N/AC:L/AT:N/PR:N/UI:N/VA:H accurately reflects the threat model: any network-reachable endpoint that parses attacker-controlled XML with xmldom is exploitable without credentials or user interaction. No EPSS score is present in the provided data, so relative exploitation probability cannot be quantified numerically. No CISA KEV listing and no explicit POC code are noted, so exploitation is not confirmed to be active - however, the attack primitive is mechanically trivial (craft an XML document with many namespace-declaring elements and POST it). Applications processing untrusted XML - SOAP services, RSS/Atom feed consumers, SVG handlers, XML-based APIs - represent the primary exposure surface. The legacy xmldom package (0.1.5-0.6.0) carries permanent residual risk because no fix will be published; environments unable to migrate face an unresolvable gap. The high availability-only impact (no confidentiality or integrity exposure) is consistent with a pure resource-exhaustion class flaw.

Exploit ScenarioDerived

An attacker sends a POST request to a SOAP or XML API endpoint with a body containing a compact XML document with hundreds of deeply nested elements each declaring a new namespace prefix. The xmldom SAX parser, allocating a full copy of the ancestor namespace map at each nesting level, consumes O(N²) heap memory and exhausts the Node.js process heap, crashing or hanging the server. The payload can be kept small by reusing short namespace URIs, making the attack efficient to repeat across multiple application instances.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% 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 namespace-map allocation in xmldom's SAX parser allows unauthenticated remote attackers to exhaust the Node.js process heap by sending a compact, crafted XML document with repeated namespace prefix declarations. The unmaintained legacy xmldom package (versions 0.1.5-0.6.0) has no available fix, while @xmldom/xmldom is patched in releases 0.8.15 and 0.9.12. No public exploit has been identified at time of analysis, but the CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) indicates the attack is trivially automatable against any application that parses untrusted XML with this library.

RemediationAI

For users of @xmldom/xmldom, upgrade to version 0.8.15 (https://github.com/xmldom/xmldom/releases/tag/0.8.15) or 0.9.12 (https://github.com/xmldom/xmldom/releases/tag/0.9.12) immediately, as confirmed by the GitHub advisory GHSA-965w-775f-mr7g. For users of the legacy xmldom package (0.1.5-0.6.0), no patch exists; migration to @xmldom/xmldom 0.9.12 or later is the primary remediation path. If immediate migration is not feasible, apply compensating controls in order of effectiveness: enforce a hard byte limit on incoming XML bodies at the reverse-proxy or middleware layer (e.g., 1 MB request body cap) to raise the cost of heap exhaustion - note this does not eliminate the vulnerability because namespace declarations are compact, but it meaningfully increases payload size requirements; run the parser inside an isolated worker process or child process so a crash does not terminate the main application (introduces latency and inter-process communication overhead); and apply rate limiting on XML-parsing endpoints to reduce sustained attack throughput. Do not rely on application-level XML schema validation as a compensating control, because heap exhaustion occurs during parsing, before validation runs.

Affected VersionsENISA

xmldom 0.1.5, ≤ 0.6.0
xmldom 0.7.0, < 0.8.15
xmldom 0.9.0, < 0.9.12

Affected Packages

npm @xmldom/xmldom fix: 0.8.15, 0.9.12
npm xmldom fix: 0.8.15, 0.9.12

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm

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

Technical ContextAI · show details

The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling), specifically in appendElement within lib/sax.js. For every XML element that declares a new namespace prefix, the SAX parser clones the complete ancestor namespace map (currentNSMap) via _copy, rather than inheriting it through the JavaScript prototype chain. For a document with N namespace-declaring elements, this produces O(N²) cumulative memory allocation on the parse stack. Because XML namespace declarations can be expressed compactly and repeated many times in a small document, a highly compressible payload can trigger peak heap exhaustion before any application-level input validation executes. The fix in @xmldom/xmldom 0.8.15 and 0.9.12 switches to prototype-chain inheritance, reducing complexity to O(N). The same release batch also patched several related quadratic-complexity bugs (attribute deduplication, ReDoS in end-tag trimming, normalize() O(K²)), indicating a broader algorithmic audit. Affected CPEs are cpe:2.3:a:xmldom:xmldom:*:*:*:*:*:*:*:* (legacy, 0.1.5-0.6.0) and cpe:2.3:a:@xmldom:xmldom:*:*:*:*:*:*:*:* (maintained fork, pre-0.8.15/0.9.12).

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 via default DOMParser API with no authentication or user interaction; impact is availability-only heap exhaustion with no scope change.

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:44 cve.org
HIGH 8.7

DescriptionCVE.org

xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) DOMParser and XMLSerializer module. Prior to @xmldom/xmldom versions 0.8.15 and 0.9.12, and in xmldom versions 0.1.5 through 0.6.0, appendElement in lib/sax.js uses _copy to clone the complete currentNSMap for each nested element that declares a new namespace prefix. Keeping every ancestor map live on the parse stack creates quadratic peak namespace-map storage, so a small highly compressible XML document can exhaust the process heap before application validation. This issue is fixed in @xmldom/xmldom versions 0.8.15 and 0.9.12; no fixed version is available for xmldom.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 16 npm packages depend on @xmldom/xmldom (9 direct, 7 indirect)

Ecosystem-wide dependent count for version 0.7.0.

Technical POC Analysis

CWE-770 (Allocation of Resources Without Limits or Throttling).

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

Applications using the unmaintained legacy xmldom package (versions 0.1.5-0.6.0) are vulnerable to denial of service through malicious XML documents that exhaust Node.js process memory. Any organization with this dependency faces service disruption risk from unauthenticated remote attackers. The fix requires immediate migration to the maintained @xmldom/xmldom fork or removal of the library, as the original package will not receive a security patch.

Business Impact: High
Compensating Controls

No vendor-released patch exists for legacy xmldom (unmaintained package). Required mitigation: upgrade all applications to @xmldom/xmldom version 0.8.15 or later, which contains the fix. If immediate upgrade is not feasible, implement interim controls including: (1) restrict XML parsing to trusted internal sources only, (2) enforce strict memory limits and automatic process termination on Node.js services, (3) deploy network-level input validation to reject XML with excessive namespace declarations, and (4) establish aggressive monitoring for memory exhaustion patterns on affected services.

Threat Intelligence Overview

EPSS Score
0.4%
Top 72% exploitable
Prevalence
Medium
popular npm XML parser in Node.js ecosystem
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA MSRC 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.4%
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-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

CVE-2026-83609 HIGH POC
8.7 Sep 01

XML injection in @xmldom/xmldom 0.9.0-0.9.11 allows an attacker to embed malicious markup into serialized XML output by

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