Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver multi-gigabyte XML to parser
-
DeliveryStart tag with >2^30 attributes
-
ExploitOverflow signed attIndex and nPrefixes
-
ExecutionOut-of-bounds heap write in storeAtts()
-
ImpactCrash or heap corruption (DoS)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the target application to parse attacker-controlled XML using a vulnerable libexpat (through 2.9.0), and the attacker must deliver a multi-gigabyte document whose single start tag carries more than 2^30 (~1 billion) attributes so that the signed int attIndex and nPrefixes counters in storeAtts() overflow into an out-of-bounds write. No authentication (PR:N) and no user interaction (UI:N) are needed. The practical limiting factors are the input scale itself: the attacker must transmit and have the victim ingest/parse a multi-GB payload with ~10^9 attributes, which consumes significant bandwidth, memory, and processing time (reflected as AC:H and AT:P) and may be blocked by request-size limits, input quotas, or resource caps in front of the parser. |
| Impact | The CVSS 4.0 base score of 8.2 (High) is tempered by two metrics that materially raise the exploitation bar: AC:H and AT:P. Per the description, triggering the signed integer overflow in storeAtts() requires supplying a multi-gigabyte XML document whose start tag carries more than 2^30 (~1 billion) attributes to overflow attIndex/nPrefixes - a precondition that demands substantial bandwidth, memory, and parsing time, which is consistent with the AC:H/AT:P scoring. The impact is scoped to availability only (VC:N/VI:N/VA:H); although the description mentions 'corrupting heap memory,' the vendor-aligned vector does not credit any confidentiality or integrity impact, so this is realistically a denial-of-service / crash issue rather than a demonstrated code-execution primitive. No EPSS score, KEV listing, or public exploit was provided in the input, and exploitation status is therefore 'no public exploit identified at time of analysis.' The vuln.today decision label is this_week - notable because libexpat is ubiquitous (bundled in Python, countless language runtimes, browsers, and Linux distributions), giving an enormous attack surface, but the requirement to deliver a multi-GB payload with ~10^9 attributes argues against trivial, widespread automated exploitation. Net: a broadly deployed library with a credible DoS flaw, but the heavy input preconditions make this a prioritized-patch (this_week) rather than emergency item. Note the input provides a CVSS 4.0 vector only; no EPSS/KEV/PoC signals were supplied to compare against. |
| Exploit ScenarioDerived | An attacker submits a specially crafted, multi-gigabyte XML document to a service that parses untrusted XML with a vulnerable libexpat (through 2.9.0). The document's start tag contains over 2^30 attributes, overflowing the signed int attIndex and nPrefixes counters in storeAtts(), which drives an out-of-bounds heap write and crashes or corrupts the parsing application. No authentication or user interaction is required (PR:N/UI:N), but the attacker must be able to deliver and have the target ingest a very large input (AC:H/AT:P); no public exploit was identified in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Integer overflow in libexpat through 2.9.0's storeAtts() can crash applications or corrupt heap memory when they parse attacker-supplied XML whose single start tag carries more than 2^30 attributes, and the assessed impact is high availability with no confidentiality or integrity effect. The assessed vector is AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H: no authentication or user interaction is required, but exploitation is gated by the need to deliver and parse a multi-gigabyte document, so front-end size or quota limits may prevent it. No public exploit was identified at time of analysis, and patch references exist upstream in libexpat PR #1450 and related commits.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed. Apply the upstream fix from libexpat PR #1450, represented by commits 1bac53c4fc460a03cd9860f39501c7979f6750ae and 621cb2c78b253ee023a86bc91d6ddb048481c04c, and upgrade to the first libexpat release that contains it; the supplied data does not state a released version number, so verify the release tag before rollout. Until then, enforce strict maximum request/document size limits and explicit attribute-count caps in front of any parser that handles untrusted XML so a multi-gigabyte body with a start tag carrying more than 2^30 attributes is rejected before reaching libexpat; these limits can block legitimate large XML and require tuning, but they directly address the scale-based precondition for this overflow. See the VulnCheck advisory at https://www.vulncheck.com/advisories/libexpat-through-2.9.0-integer-overflow-in-storeatts-via-attindex-and-nprefixes and upstream PR https://github.com/libexpat/libexpat/pull/1450.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
libexpat is a widely embedded C XML parser, and the supplied CPE cpe:2.3:a:libexpat:libexpat:*:*:*:*:*:*:*:* identifies libexpat itself with affected versions through 2.9.0. The root cause is CWE-190, a signed integer overflow in storeAtts() in lib/xmlparse.c: the function counts attributes with signed int variables attIndex and nPrefixes, and a start tag declaring more than 2^30 attributes can overflow those counters and lead to out-of-bounds writes when the parser later indexes attribute-related state. The supplied trigger description is specific: a multi-gigabyte XML document with a start tag carrying over 2^30 attributes, with exploitation preconditions reflected as AC:H and AT:P because the attacker must get the victim to ingest and parse that very large payload. The upstream fix in PR #1450 changes attIndex and nPrefixes to size_t, adds an attIndex > INT_MAX rejection returning XML_ERROR_NO_MEMORY, and adds bounds checks around idAttIndex assignment; commits 1bac53c4fc460a03cd9860f39501c7979f6750ae and 621cb2c78b253ee023a86bc91d6ddb048481c04c are also patch references.
Know when Libexpat 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
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
AC:H and (in 4.0) AT:P because triggering needs a crafted multi-gigabyte document with >2^30 attributes; PR:N/UI:N since any exposed parser ingests input; impact is availability-only (DoS) with no confidentiality/integrity evidence.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
libexpat through 2.9.0 contains a signed integer overflow vulnerability in storeAtts() in lib/xmlparse.c that allows attackers to trigger out-of-bounds writes via oversized attribute counts. Attackers can supply a multi-gigabyte document with a start tag carrying over 2^30 attributes to overflow attIndex and nPrefixes, crashing applications or corrupting heap memory.
Executive ViewAI
CVE-2026-118370 is a high-severity integer overflow in libexpat (through 2.9.0) that can crash or corrupt memory in applications parsing specially crafted massive XML documents. Although no public exploit exists, any service or product that accepts large XML inputs is exposed to denial-of-service, potentially disrupting business operations and availability. Leadership should prioritize patching to maintain service uptime and customer trust.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Related Vulnerabilities in libexpat NULL Deref and Integer Overflow Flaws
View all 2In Expat (aka libexpat) before 2.4.5, there is an integer overflow in storeRawNames. Rated critical severity (CVSS 9.8),
libexpat in Expat before 2.7.2 allows attackers to trigger large dynamic memory allocations via a small document that is
In libexpat before 2.2.8, crafted XML input could fool the parser into changing from DTD parsing to document parsing too
CPU exhaustion in libexpat through 2.9.0 lets remote attackers stall XML parsing workloads by supplying a moderately siz
Malformed UTF-16 decoding in libexpat through 2.8.4 lets remote attackers hide XML markup from the parser: a lone high s
In libexpat through 2.4.9, there is a use-after free caused by overeager destruction of a shared DTD in XML_ExternalEnti
Alpine Linux: expat fixed in 2.6.2-r0
XML External Entity vulnerability in libexpat 2.2.0 and earlier (Expat XML Parser Library) allows attackers to put the p
Denial of service in libexpat before 2.8.1 lets remote attackers exhaust CPU by submitting moderately sized crafted XML
expat before version 2.4.0 does not properly handle entities expansion unless an application developer uses the XML_SetE
Expat allows context-dependent attackers to cause a denial of service (crash) or possibly execute arbitrary code via a m
An issue was discovered in libexpat before 2.6.3. Rated critical severity (CVSS 9.8), this vulnerability is remotely exp
EUVD-2026-111546
GHSA-c6pw-vjr4-wwwr
NVD
CVE.org
EPSS
Exploit-DB