Skip to main content

xmldom EUVDEUVD-2026-69225

| CVE-2026-83611 MEDIUM
Improper Validation of Syntactic Correctness of Input (CWE-1286)
2026-09-01 GitHub_M GHSA-6h8r-xr42-gp59
6.9
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Submit crafted XML with multiline malformed end tag
  2. Delivery
    parseFromString() regex multiline-flag matches first line only
  3. Exploit
    Trailing junk silently discarded, no error raised
  4. Execution
    Application's well-formedness gate passes
  5. Persist
    Malformed document trusted and processed
  6. Impact
    Security control bypassed

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Hardware access control granularity
Exploitation Conditions

Exploitation requires that the target application calls DOMParser.parseFromString() on attacker-controlled XML using an unpatched @xmldom/xmldom version (prior to 0.8.15 or 0.9.12) or any version of the legacy xmldom package, AND that the application uses parse success - absence of thrown errors or error callbacks - as a security gate for XML well-formedness. The bypass is only meaningful in this parse-before-trust pattern; applications that parse XML purely for storage, display, or transformation without a security gate are not meaningfully at risk. The vulnerability does not inject discarded content into the DOM and does not enable direct code execution. No authentication, non-default configuration, or special deployment mode is required; CVSS AV:N/AC:L/PR:N/UI:N confirms the parser behavior is reachable by any caller without preconditions.

Impact

The CVSS 4.0 score of 6.9 with VI:L accurately reflects the bounded integrity impact: the vulnerability enables bypass of a well-formedness gate but does not inject content or grant code execution. Real-world risk is strongly context-dependent. Applications that use xmldom solely for display or storage with no security gating face minimal exposure. Risk is elevated for applications that rely on a clean parse as proof of XML validity - SAML SSO processors, XML Digital Signature verifiers, API input sanitizers - where silent acceptance of malformed tags could allow an attacker to circumvent a security control. No EPSS data is available in the provided input; no KEV listing and no public POC exist, making opportunistic mass exploitation unlikely. The AV:N/AC:L/PR:N/UI:N CVSS vector is consistent with the description: any caller of parseFromString() on untrusted input is affected without special conditions. The legacy xmldom package has no fix path, meaning installations using that package remain permanently exposed absent a migration. The PR diffs confirm the fix is in sax.js and is surgical - output is byte-identical for well-formed input.

Exploit ScenarioDerived

An attacker submits crafted XML to a Node.js SAML or XML-signature endpoint with a malformed closing tag such as </Signature IGNORED_JUNK>. The unpatched xmldom silently closes the element and discards the trailing content without raising an error, causing the application's parse-success check to pass and the document to be processed as well-formed. Downstream signature verification or authorization logic then operates on a DOM it incorrectly believes was validated, potentially allowing the attacker to circumvent the well-formedness gate that was intended to block malformed inputs.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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

Silent acceptance of malformed XML end tags in xmldom's DOMParser allows crafted input to bypass parse-before-trust well-formedness gates in security-sensitive Node.js applications. The flaw affects @xmldom/xmldom prior to 0.8.15 and 0.9.12, as well as all versions of the legacy xmldom package (0.6.0 and earlier), for which no patch exists. No public exploit has been identified at time of analysis, but the parser differential is exploitable in any pipeline - SAML processors, XML signature verifiers, API validators - that treats a clean xmldom parse as a validity certificate.

RemediationAI

Upgrade @xmldom/xmldom to version 0.8.15 (0.8.x track) or 0.9.12 (0.9.x track), which enforce strict XML ETag well-formedness and report malformed end tags via the onError callback (0.9.x) or errorHandler interface (0.8.x) instead of silently discarding trailing content; release artifacts are at https://github.com/xmldom/xmldom/releases/tag/0.8.15 and https://github.com/xmldom/xmldom/releases/tag/0.9.12. For users of the legacy xmldom package (0.6.0 and earlier), no patch exists; migration to the actively maintained @xmldom/xmldom fork is the only durable fix - continuing to use the legacy package in security-sensitive contexts is inadvisable. As a compensating control pending migration, configure a strict onError/errorHandler that treats any parse-level error as a fatal rejection, and supplement xmldom's parse result with an independent schema or well-formedness validator before trusting the document; be aware that this adds latency and does not close all parser-differential edge cases in unpatched versions.

Affected VersionsENISA

xmldom 0.7.0, < 0.8.15
xmldom ≤ 0.6.0
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 W3C DOM Level 2 Core implementation widely used in Node.js for XML and HTML parsing (CWE-1286: Improper Validation of Syntactic Correctness of Input). The root cause on the 0.9.x branch is in lib/sax.js: the end-tag (ETag) validator regex inherits the multiline flag from reg(), causing the $ anchor to match end-of-line rather than end-of-string. The XML ETag production (</Name S? >) is satisfied by the first line of a multiline token like </a junk>, and the trailing junk is silently discarded without an error callback. On 0.8.x, an equivalent residue-validation gap exists. Critically, the discarded content is NOT injected into the resulting DOM - the element closes correctly - but the parser does not signal a well-formedness violation, breaking the trust assumption of security gates that call parseFromString() and inspect only whether parsing succeeded. Affected CPEs are cpe:2.3:a:xmldom:xmldom:*:*:*:*:*:*:*:* (legacy, unfixed) and cpe:2.3:a:@xmldom:xmldom:*:*:*:*:*:*:*:* (fixed in 0.8.15 and 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 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

Network-reachable via any parseFromString call, no auth required, low integrity impact from silent gate bypass, no confidentiality or availability consequence.

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

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
Low
Vulnerable system: Availability
None
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:34 cve.org
MEDIUM 6.9

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 version 0.6.0 and earlier, DOMParser.parseFromString() can silently accept an end tag such as </a\njunk>, close the element, and discard the trailing content. On 0.9.x, the lib/sax.js end-tag validator inherits the multiline flag from reg(), allowing the first line to satisfy the anchored XML ETag production; older lines have no equivalent residue validation. This parser differential can bypass a parse-before-trust well-formedness gate, although it does not inject the discarded content; onError on 0.9.x and errorHandler on 0.8.x are the relevant reporting interfaces. 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)
  • 2,019 npm packages depend on xmldom (864 direct, 1,181 indirect)

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

Threat Intelligence Overview

EPSS Score
0.4%
Top 72% exploitable
Prevalence
High
widely-used npm XML parser across 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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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