Description
xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) DOMParser and XMLSerializer module. From 0.9.0-beta.1 until 0.9.12, HTML-mode parsing through DOMParser.parseFromString() mishandles a mixed-case closing tag for the script, style, textarea, or title raw-text elements. parseHtmlSpecialContent, selected by isHTMLRawTextElement or isHTMLEscapableRawTextElement, uses a case-sensitive indexOf() and then calls substring() with a missing-close result of negative one, causing unstable parser progression and quadratic output amplification. A small untrusted text/html document can consequently consume disproportionate CPU and memory when parsed and serialized. This issue is fixed in @xmldom/xmldom version 0.9.12.
Published: 2026-09-01
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via CPU and memory exhaustion
Action: Immediate Patch
AI Analysis

Impact

xmldom is a pure‑JavaScript XML parser that can also parse HTML. From versions 0.9.0‑beta.1 through 0.9.12 the HTML‑mode parsing path mishandles mixed‑case closing tags for raw‑text elements such as script, style, textarea or title. The parser uses a case‑sensitive indexOf followed by a substring call with a negative offset, which causes the parsing loop to stall and its output to grow quadratically. As a result a small untrusted HTML document can trigger disproportionate CPU usage and memory consumption when parsed or serialized, leading to a denial of service.

Affected Systems

Any environment that incorporates @xmldom/xmldom between versions 0.9.0‑beta.1 and 0.9.12 and calls DOMParser.parseFromString() in HTML mode is affected. This includes Node.js applications, browser environments, or any JavaScript runtime that uses the library. Version 0.9.12 and later contain the fix.

Risk and Exploitability

The vulnerability has a CVSS score of 8.7, indicating high severity. EPSS is not available and the issue is not listed in CISA KEV, suggesting no widespread exploitation as of now. Based on the description, it is inferred that an attacker can supply malformed HTML containing a mis‑cased closing tag for a raw‑text element to an application that uses xmldom to parse untrusted input. If the application accepts such input, the attacker can remotely or locally trigger excessive CPU and memory usage, resulting in service disruption. The flaw is easy to exploit once the input path is exposed, making the risk significant in susceptible environments.

Generated by OpenCVE AI on September 1, 2026 at 16:48 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade @xmldom/xmldom to version 0.9.12 or later to apply the fix
  • Validate or sanitize any user‑supplied HTML before parsing to avoid mixed‑case closing tags for script, style, textarea or title elements
  • Apply resource limits or throttling to the XML parsing process, such as setting maximum input size or CPU quotas, to mitigate potential denial of service

Generated by OpenCVE AI on September 1, 2026 at 16:48 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-6mj3-qw4j-hgrw xmldom: HTML raw-text closing-tag case mismatch causes output amplification
History

Wed, 02 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Important


Tue, 01 Sep 2026 22:00:00 +0000

Type Values Removed Values Added
First Time appeared Xmldom
Xmldom xmldom
Vendors & Products Xmldom
Xmldom xmldom
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 01 Sep 2026 14:45:00 +0000

Type Values Removed Values Added
Description xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) DOMParser and XMLSerializer module. From 0.9.0-beta.1 until 0.9.12, HTML-mode parsing through DOMParser.parseFromString() mishandles a mixed-case closing tag for the script, style, textarea, or title raw-text elements. parseHtmlSpecialContent, selected by isHTMLRawTextElement or isHTMLEscapableRawTextElement, uses a case-sensitive indexOf() and then calls substring() with a missing-close result of negative one, causing unstable parser progression and quadratic output amplification. A small untrusted text/html document can consequently consume disproportionate CPU and memory when parsed and serialized. This issue is fixed in @xmldom/xmldom version 0.9.12.
Title xmldom: HTML raw-text closing-tag case mismatch causes output amplification
Weaknesses CWE-178
CWE-400
References
Metrics cvssV4_0

{'score': 8.7, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-01T15:30:10.060Z

Reserved: 2026-08-31T20:36:25.744Z

Link: CVE-2026-83612

cve-icon Vulnrichment

Updated: 2026-09-01T15:30:04.360Z

cve-icon NVD

Status : Deferred

Published: 2026-09-01T15:17:39.430

Modified: 2026-09-08T21:11:31.703

Link: CVE-2026-83612

cve-icon Redhat

Severity : Important

Publid Date: 2026-09-01T14:36:23Z

Links: CVE-2026-83612 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-01T17:00:17Z

Weaknesses
  • CWE-178

    Improper Handling of Case Sensitivity

  • CWE-400

    Uncontrolled Resource Consumption