Skip to main content

@xmldom/xmldom CVE-2026-83616

| EUVDEUVD-2026-69239 HIGH
XML Injection (aka Blind XPath Injection) (CWE-91)
2026-09-01 GitHub_M GHSA-c7q8-3ch8-vqpv
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
    Attacker supplies malicious PI target string via network input
  2. Delivery
    Application passes string to Document.createProcessingInstruction() without validation
  3. Exploit
    Serializer emits malformed <?target?> breaking XML PI boundary
  4. Execution
    Injected XML structure embedded in serialized document output
  5. Persist
    Downstream XML processor parses injected content as legitimate XML
  6. Impact
    Target document integrity compromised

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization XPath query parameterization
Exploitation Conditions

Exploitation requires that the target argument to Document.createProcessingInstruction() originate from or be influenced by attacker-controlled input, and that the resulting DOM be subsequently serialized via XMLSerializer.serializeToString(). On @xmldom/xmldom 0.9.x, enabling requireWellFormed: true in the serializer provides partial protection - it rejects colons and the reserved 'xml' prefix - but does not reject >, ?, or whitespace characters in the target, leaving those injection vectors open even when this option is active. On @xmldom/xmldom 0.8.x and all versions of the legacy xmldom package, no validation occurs at any layer regardless of serializer options. Applications that determine PI targets exclusively from internal, trusted values are not exploitable. Whether authentication is required depends entirely on whether the vulnerable code path is reachable through an unauthenticated network endpoint, which is application-specific; the CVSS PR:N reflects the library-level assumption that no privilege is needed to supply input.

Impact

The source-provided CVSS 4.0 score of 8.7 (High) with AV:N/AC:L/AT:N/PR:N/UI:N reflects a worst-case scenario where an application passes untrusted user input directly to createProcessingInstruction(). In practice, real-world risk is strongly gated by application design: exploitation only occurs when the PI target derives from external input and the resulting DOM is serialized, a pattern that is specific rather than universal. VI:H (high integrity impact on the vulnerable system's output document) is credible; downstream XML processors consuming that output could also be affected, warranting SI:H consideration. No EPSS score was provided, and this CVE is absent from the CISA KEV catalog, so exploitation probability and active exploitation status are unconfirmed from the available data. The legacy xmldom package has no fix at all, meaning organizations still running it face indefinite exposure - a more urgent signal than the CVSS score alone conveys. Overall, this warrants prioritized dependency auditing with the urgency calibrated against whether the application actually passes external data to createProcessingInstruction().

Exploit ScenarioDerived

An attacker submits a crafted string - for example 'foo>injected' - through a web endpoint whose backend passes the value as the target argument to Document.createProcessingInstruction(). The serializer emits <?foo>injected data?>, breaking the PI boundary and embedding an injected element into the output document. If that serialized XML is forwarded to a downstream processor such as an XSLT engine, an XML-based message bus, or an audit-logging pipeline, the injected structure is parsed as legitimate XML and may alter document semantics, bypass schema validation, or trigger unexpected parser behavior.

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

Processing-instruction target injection in the @xmldom/xmldom JavaScript library allows XML structure breakout through unvalidated characters in Document.createProcessingInstruction() targets. Versions prior to 0.8.15 and 0.9.12 - and all versions of the legacy xmldom package (0.6.0 and earlier, which has no fix) - emit malformed processing instructions when a target contains >, ?, whitespace, or other XML-Name-invalid characters, enabling injection of arbitrary XML structure into the serialized output. No public exploit has been identified at time of analysis, and the CVE is not listed in the CISA KEV catalog.

RemediationAI

Upgrade @xmldom/xmldom 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) depending on the branch in use; both releases are confirmed by GitHub release tags and the associated PR commits (https://github.com/xmldom/xmldom/commit/1cde3e31a07c41c87cfd368d6946aa477f16b4f9 and https://github.com/xmldom/xmldom/commit/3b694872bcb5c7e3cbadba961a4be2488750ce5b). Applications still on the legacy xmldom package (0.6.0 or earlier) have no patched release available and should migrate to @xmldom/xmldom 0.9.12 as a priority. As a compensating control for environments unable to upgrade immediately, applications should validate any externally sourced string against the XML NCName production before passing it as a PI target, rejecting strings containing >, ?, whitespace, or any non-name character. Relying on requireWellFormed: true alone is insufficient: it provides only partial protection on 0.9.x and no protection on 0.8.x, so it must not be treated as a standalone mitigation.

Affected VersionsENISA

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

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

CWE-91 (XML Injection) describes the root cause: user-supplied data is embedded into an XML structure without adequate validation, breaking structural boundaries. Processing instructions take the form <?target data?> in XML, where the target must conform to the NCName production per the XML Namespaces specification (no >, ?, whitespace, or other non-name characters). The affected module's Document.createProcessingInstruction() in lib/dom.js never validates the target at creation time. The @xmldom/xmldom 0.9.x serializer under requireWellFormed: true only checks for a leading colon and the reserved case-insensitive string 'xml', missing all other invalid characters; the 0.8.x serializer performs no target check at all. CPE strings cpe:2.3:a:xmldom:xmldom:* and cpe:2.3:a:@xmldom:xmldom:* cover the legacy and modern scoped packages respectively, and PR diffs for both 0.8.15 and 0.9.12 confirm the fix validates the target as a valid XML NCName before serialization.

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:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 8.6 HIGH

Network-exploitable with no privileges when PI target is attacker-controlled; scope changes because injected XML can be processed by downstream systems outside the vulnerable application.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/SA:N
SUSE 7.1 HIGH
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
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
High
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:45 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 version 0.6.0 and earlier, Document.createProcessingInstruction(target, data) in lib/dom.js accepts an unvalidated target, while the requireWellFormed: true serializer checks only for a colon and the reserved case-insensitive xml name on 0.9.x and performs no target check on 0.8.x. Because serialization emits <?target data?>, a target containing >, ?, whitespace, or another invalid XML-name character can break the processing-instruction boundary and inject XML structure. 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.

Technical POC Analysis

CWE-91 (XML Injection).

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/xmldom and xmldom JavaScript libraries contain an XML processing instruction injection vulnerability (CVSS 8.7); no public exploit identified at time of analysis. Organizations using these libraries to process untrusted XML data face risks of data corruption, injection attacks, and potential data exfiltration. Patches are available for the maintained @xmldom/xmldom library, but legacy xmldom users remain at continued risk with no fix available.

Business Impact: High
Compensating Controls

For @xmldom/xmldom: Apply vendor patch by upgrading to version 0.8.15 or 0.9.12 depending on your version line. For legacy xmldom (0.6.0 and earlier): No vendor patch available; implement strict input validation and sanitization for XML processing instruction targets, and prioritize migration to the maintained @xmldom/xmldom library or alternative actively maintained XML parsing solution.

Threat Intelligence Overview

EPSS Score
0.3%
Top 72% exploitable
Prevalence
Medium
popular JavaScript XML DOM library for Node.js, not universally deployed
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.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

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-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