Skip to main content

xmldom CVE-2026-83614

| EUVDEUVD-2026-69234 HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-09-01 GitHub_M GHSA-93r5-fhx6-vmg9
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 crafted malformed XML over HTTP
  2. Delivery
    DOMParser.parseFromString() invoked on attacker input
  3. Exploit
    SAX parser enters O(N²) malformed tag-name recovery loop
  4. Execution
    CPU exhaustion proportional to payload length squared
  5. Impact
    Service becomes unresponsive

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

Both quadratic DoS paths are reachable via the default DOMParser.parseFromString() call with absolutely no special configuration required. The first path (SAX parser in lib/sax.js) is triggered by any malformed tag name containing characters that cause single-character recovery mode - no non-default parser options are needed. The second path (normalize() in lib/dom.js) is triggered automatically via endDocument() at the conclusion of every parse, or can be triggered by a direct normalize() call on a programmatically constructed DOM with adjacent text nodes. No authentication is required per the CVSS PR:N metric. Exploitation is bounded to denial of service (availability only); there is no path to code execution or data disclosure. The attacker must have network access to any endpoint that processes XML input through these libraries.

Impact

The CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N) accurately reflects that both quadratic DoS paths are reachable over the network without authentication or special configuration, through the standard DOMParser.parseFromString() interface. Impact is limited entirely to availability - there is no confidentiality or integrity exposure. EPSS data is absent from the provided intelligence, so exploitation probability cannot be quantified; however, this CVE is not listed in CISA KEV and no public exploit code has been confirmed at time of analysis. The real-world risk is concentrated in services that accept and parse untrusted or attacker-supplied XML, such as API gateways, document processors, and XML-accepting web endpoints. The legacy xmldom package (0.3.0-0.6.0) has no available fix, creating a permanent exposure for any deployment still using it. The combination of two independent O(N²) paths, both reachable without privileges, means even moderate-sized crafted inputs can cause disproportionate resource consumption - the risk is practical and not merely theoretical for any internet-facing service parsing user-controlled XML.

Exploit ScenarioDerived

An attacker sends an HTTP request containing a crafted XML payload with a malformed tag name (e.g., an element name containing an embedded < character) to any web service that passes request bodies through DOMParser.parseFromString(). The SAX parser's recovery loop rescans the malformed name character-by-character in O(N²) time, causing CPU to spike proportionally to the square of the payload length. By repeating requests with payloads sized in the tens of kilobytes, an attacker can sustain CPU exhaustion on the target without any authentication.

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

Two independent quadratic-complexity denial-of-service paths in the xmldom JavaScript XML parser allow remote unauthenticated callers to exhaust CPU and memory by submitting crafted XML. The @xmldom/xmldom package before versions 0.8.15 and 0.9.12, and all versions of the legacy xmldom package (0.3.0-0.6.0), expose both paths through the default DOMParser.parseFromString() interface, requiring no authentication or special configuration. No public exploit has been identified at time of analysis, but the security advisories and fix commits are publicly available on GitHub.

RemediationAI

Users of @xmldom/xmldom should 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) as applicable to their branch. These releases are confirmed by GitHub release tags and the fix commits at https://github.com/xmldom/xmldom/commit/0748720b620555f8c222782dcab575cf0cf403b4 and https://github.com/xmldom/xmldom/commit/f40ccb861eee0acbf5ee4feb9a34932e87b329c9. Users of the legacy xmldom package (0.3.0-0.6.0) have no patched version available and should migrate to the maintained @xmldom/xmldom fork. As a compensating control where patching is not immediately feasible, enforce a strict maximum input byte size at the application or reverse-proxy layer (e.g., reject XML inputs exceeding 512 KB or 1 MB) - this bounds worst-case O(N²) processing time at the cost of rejecting unusually large legitimate documents. Wrapping parseFromString() in a per-request CPU timeout is an additional layer but carries the trade-off of aborting processing for large valid documents under load. Avoiding direct normalize() calls on programmatically built DOMs with many adjacent text nodes reduces exposure to the second path.

Affected VersionsENISA

xmldom 0.3.0, ≤ 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

xmldom is a pure JavaScript implementation of the W3C DOM Level 2 Core specification, providing DOMParser and XMLSerializer for Node.js environments. CPE entries cover both the maintained fork (cpe:2.3:a:@xmldom:xmldom:*:*:*:*:*:*:*:*) and the legacy package (cpe:2.3:a:xmldom:xmldom:*:*:*:*:*:*:*:*). CWE-400 (Uncontrolled Resource Consumption) governs both flaws. The first path exists in lib/sax.js: parseElementStartPart uses single-character error recovery when it encounters a malformed tag name, rescanning forward to the next > one character at a time, producing O(N²) work for an N-character malformed name. The second path exists in lib/dom.js: Node.prototype.normalize() merges adjacent text nodes through repeated remove-and-append operations, causing O(K²) reindexing and string rebuilding for K adjacent text nodes. Both paths are reachable via the default DOMParser.parseFromString() call; the normalize() path is additionally reachable via direct programmatic calls and is automatically invoked by endDocument() at the close of every parse.

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 parse call with no privileges or interaction needed; impact is availability-only 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:41 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.3.0 through 0.6.0, two independent quadratic paths can cause denial of service. In lib/sax.js, parseElementStartPart repeatedly rescans a malformed tag name to the next > during single-character recovery; in lib/dom.js, normalize() repeatedly removes and appends adjacent text nodes, causing quadratic reindexing and string rebuilding. The first path is reachable through default DOMParser.parseFromString() processing, while the second is also reachable through a direct normalize() call on a programmatically constructed DOM, and endDocument invokes that normalization after parsing. 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)
  • 350 npm packages depend on xmldom (219 direct, 134 indirect)

Ecosystem-wide dependent count for version 0.7.0 and other introduced versions.

Technical POC Analysis

CWE-407 (Inefficient Algorithmic Complexity) per the advisory; the CVE record maps it to CWE-400 (Uncontrolled Resource Consumption).

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 XML parser used in Node.js applications contains a remotely exploitable denial-of-service vulnerability (CVSS 8.7) that allows unauthenticated attackers to crash services via specially crafted XML payloads without any authentication requirement. Organizations running @xmldom/xmldom or legacy xmldom in production face application unavailability and service interruption risks. Vendor patches are available and must be deployed immediately to all affected systems.

Business Impact: High
Compensating Controls

Apply vendor patch: upgrade @xmldom/xmldom to version 0.8.15 or 0.9.12. For legacy xmldom package (end-of-life with no patch available), migrate to @xmldom/xmldom. Interim mitigations if patching is delayed: enforce strict XML input size limits at application and network layers, implement rate limiting on XML parsing endpoints, and establish monitoring for CPU and memory exhaustion anomalies.

Threat Intelligence Overview

EPSS Score
0.4%
Top 72% exploitable
Prevalence
Medium
widely used Node.js XML parsing library, not ubiquitous infrastructure
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA MSRC Vendor GitHub VulDB

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
Scheduled
Exploitation
None
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-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