Skip to main content

libexpat EUVDEUVD-2026-111546

| CVE-2026-118370 HIGH
Integer Overflow or Wraparound (CWE-190)
2026-10-28 VulnCheck GHSA-c6pw-vjr4-wwwr
8.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Deliver multi-gigabyte XML to parser
  2. Delivery
    Start tag with >2^30 attributes
  3. Exploit
    Overflow signed attIndex and nPrefixes
  4. Execution
    Out-of-bounds heap write in storeAtts()
  5. Impact
    Crash 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.

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

libexpat 0 ≤2.9.0

Affected Packages

euvd libexpat no fix

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

Vendor (VulnCheck) PRIMARY 8.2 HIGH
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
vuln.today AI 5.9 MEDIUM

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
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

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 62% exploitable
Prevalence
Ubiquitous
core XML parser bundled in Python, browsers, and most Linux systems
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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 No
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

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

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 2
CVE-2022-25315 CRITICAL POC
9.8 Feb 18

In Expat (aka libexpat) before 2.4.5, there is an integer overflow in storeRawNames. Rated critical severity (CVSS 9.8),

CVE-2025-59375 HIGH POC
7.5 Sep 15

libexpat in Expat before 2.7.2 allows attackers to trigger large dynamic memory allocations via a small document that is

CVE-2019-15903 HIGH POC
7.5 Sep 04

In libexpat before 2.2.8, crafted XML input could fool the parser into changing from DTD parsing to document parsing too

CVE-2026-115506 HIGH POC
8.7 Oct 22

CPU exhaustion in libexpat through 2.9.0 lets remote attackers stall XML parsing workloads by supplying a moderately siz

CVE-2026-93990 HIGH POC
8.7 Sep 19

Malformed UTF-16 decoding in libexpat through 2.8.4 lets remote attackers hide XML markup from the parser: a lone high s

CVE-2022-43680 HIGH POC
7.5 Oct 24

In libexpat through 2.4.9, there is a use-after free caused by overeager destruction of a shared DTD in XML_ExternalEnti

CVE-2024-28757 HIGH POC
7.5

Alpine Linux: expat fixed in 2.6.2-r0

CVE-2017-9233 HIGH POC
7.5 Jul 25

XML External Entity vulnerability in libexpat 2.2.0 and earlier (Expat XML Parser Library) allows attackers to put the p

CVE-2026-45186 HIGH POC
7.5 May 10

Denial of service in libexpat before 2.8.1 lets remote attackers exhaust CPU by submitting moderately sized crafted XML

CVE-2013-0340 MEDIUM POC
6.8 Jan 21

expat before version 2.4.0 does not properly handle entities expansion unless an application developer uses the XML_SetE

CVE-2016-0718 CRITICAL
9.8 May 26

Expat allows context-dependent attackers to cause a denial of service (crash) or possibly execute arbitrary code via a m

CVE-2024-45492 CRITICAL
9.8 Aug 30

An issue was discovered in libexpat before 2.6.3. Rated critical severity (CVSS 9.8), this vulnerability is remotely exp

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy