CVE-2026-118370
Medium · 5.9CVSS
5.9
EPSS
0.4%
Published
Oct 28, 2026
CISA due date
—
Cloudanix analysis
A bug in a common XML reading library can let attackers crash programs or damage memory by feeding them specially crafted files with enormous numbers of attributes.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- High
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Signed integer overflow in storeAtts() allows oversized attribute counts in XML start tags to overflow attIndex and nPrefixes, resulting in out-of-bounds writes on the heap.
Why it matters to the business
Applications that parse untrusted XML may crash or experience memory corruption, leading to denial of service or potential arbitrary code execution in affected libraries and downstream software.
How an attack unfolds
An attacker crafts a multi-gigabyte XML document containing a start tag with more than 2^30 attributes and supplies it to any application using the vulnerable libexpat parser, triggering the integer overflow during attribute storage and subsequent heap corruption.
How to fix it
Upgrade libexpat to a version containing the fix for the integer overflow in storeAtts(); rebuild and redeploy all dependent applications; consider input size limits on XML documents as a temporary control.
How to confirm the fix worked
Confirm libexpat version is newer than 2.9.0; attempt parsing of a test document with an attribute count exceeding 2^30 to verify absence of crash or corruption.
Typical attack path
- Identify target application that accepts XML input via network or file upload
- Generate XML document with start tag containing over 2^30 attributes totaling multiple gigabytes
- Deliver the malicious document to the target parser
- Trigger storeAtts() processing to induce signed integer overflow and out-of-bounds write
- Observe crash or attempt to leverage heap corruption for code execution
How to detect it
Review application logs for crashes during XML parsing of unusually large inputs; inspect process dumps for heap corruption patterns around attribute index handling; correlate with inbound XML traffic exceeding normal size thresholds.
What your security team should do
- Inventory all software using libexpat and prioritize upgrades
- Implement XML input validation and size restrictions where feasible
- Monitor for new fixed releases and apply within 30 days given public disclosure
- Add memory sanitizer tests for XML parsing paths in CI pipelines
The record
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.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-119340 Tesseract is an open source OCR engine. CWE-190
- CVE-2026-61694 go-xrpl is a Go implementation of the XRP Ledger protocol. CWE-190
- CVE-2026-119729 A flaw was found in GStreamer. CWE-190
- CVE-2026-119719 Blender before 4.5.15 and 5.x before 5.2.3 contains a heap buffer overflow vulnerability… CWE-190
- CVE-2026-119718 Blender before 4.5.15 and 5.x before 5.2.3 contains a heap buffer overflow vulnerability… CWE-190
- CVE-2026-104064 Scribus before 1.6.7 contains an integer overflow vulnerability in the… CWE-190
- CVE-2026-116366 An issue has been discovered in ClickHouse Server that, under certain conditions, could… CWE-190
- CVE-2026-114691 A flaw was found in the libstdc++ component of GCC. CWE-190