Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify application parsing attacker-supplied XML via libexpat < 2.7.6
-
DeliveryEnumerate reduced 4-8 byte SipHash salt candidates
-
ExploitCraft XML names producing deliberate hash collisions
-
ExecutionSubmit collision-laden XML document repeatedly
-
PersistDegrade parser hash table to O(n) lookup
-
ImpactCause application-layer denial of service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Entropy requirements
|
| Exploitation Conditions | Exploitation requires that the attacker can supply crafted XML to an application that parses it with libexpat < 2.7.6, and that the attacker can predict or enumerate sufficient candidates from the reduced salt space (4-8 bytes of entropy depending on platform |
| Impact | Converging signals place this firmly in the low-priority tier. The CVSS 3.1 score of 2.9 (Low) with AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L indicates high attack complexity and local vector with only partial availability impact. EPSS at 0.01% (2nd percentile) and SSVC exploitation=none/not-automatable reinforce that no opportunistic exploitation is occurring. The KEV listing is absent, confirming no confirmed active exploitation. One signal tension worth noting: the NVD-assigned AV:L is conservative for a library that frequently parses network-sourced XML (web feeds, SOAP, REST payloads), where AV:N would be defensible - however, AC:H limits practical exploitation regardless of vector. The impact is bounded to partial availability (A:L); there is zero confidentiality or integrity impact. The Tags field lists 'Information Disclosure,' but nothing in the CVSS vector, CWE, or source code diff supports a confidentiality impact - this tag appears to be a mislabel and should not be used for risk decisions. |
| Exploit ScenarioDerived | An attacker with the ability to submit XML content to an application backed by libexpat < 2.7.6 constructs element or attribute names mathematically engineered to collide in Expat's internal hash table - feasible because the salt is derived from only 4-8 bytes of entropy rather than the full 16 bytes SipHash supports. Sustained submission of such crafted documents causes hash bucket chains to degrade from O(1) to O(n), slowing or hanging the XML parser and causing a service-level denial-of-service. No public exploit code has been identified at time of analysis, and the high attack complexity (salt prediction) limits opportunistic use. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 24, 2026
Hash flooding denial-of-service in libexpat before 2.7.6 stems from the existing SipHash-based collision protection consuming only 4-8 bytes of salt entropy (constrained by the width of unsigned long) when the SipHash implementation supports a full 16-byte key - reducing the effective salt space and enabling a knowledgeable attacker to craft XML documents with deliberately colliding element or attribute names. All libexpat versions from 0 through 2.7.5 are affected per CPE cpe:2.3:a:libexpat_project:libexpat. No active exploitation has been confirmed (no CISA KEV listing), EPSS sits at 0.01% (2nd percentile), and SSVC designates exploitation as none and the flaw as non-automatable, placing real-world urgency firmly in the low tier.
RemediationAI
Upgrade to libexpat 2.7.6 or later; this is the vendor-released patch confirmed by upstream PR #1183 (https://github.com/libexpat/libexpat/pull/1183) and the Expat release blog at https://blog.hartwork.org/posts/expat-2-8-0-released/. Any application code that explicitly calls XML_SetHashSalt should be migrated to XML_SetHashSalt16Bytes using a high-quality entropy source such as getentropy(3) - or should omit both calls entirely, allowing Expat 2.7.6's internal machinery to auto-generate a full 16-byte salt. Continuing to call XML_SetHashSalt after upgrading is itself considered a vulnerability per the upstream changelog. For environments where immediate patching is not feasible, restricting the size and structural complexity of XML inputs accepted from untrusted sources (e.g., enforcing document size limits at the application or WAF layer) reduces the attacker's ability to saturate hash buckets, though this has operational trade-offs for legitimate large-payload workflows. Siemens-specific remediation should follow SSA-082556.
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 (CPE: cpe:2.3:a:libexpat_project:libexpat) is a widely embedded C library for streaming XML parsing, consumed by Python (via pyexpat), PHP, and numerous system packages. Its hash collision defense uses SipHash internally, which supports a 128-bit (16-byte) key. The root cause is CWE-331 (Insufficient Entropy): the legacy XML_SetHashSalt API accepted only an unsigned long argument - 4 bytes on 32-bit platforms, 8 bytes on 64-bit platforms - leaving 8-12 bytes of the SipHash key unpopulated and therefore contributing no entropy. An attacker who can narrow the effective salt space can engineer XML names that land in the same hash bucket, producing pathological O(n²) lookup chains. The upstream fix in PR #1183 introduces XML_SetHashSalt16Bytes (versioned symbol LIBEXPAT_2.7.6) consuming the full 16-byte key, and formally deprecates XML_SetHashSalt. Per the changelog, any application that explicitly calls XML_SetHashSalt should now be treated as introducing a vulnerability.
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
AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
AV:N reflects libexpat's common role parsing network-sourced XML; AC:H retained for salt-prediction complexity; C:N and I:N confirmed by CWE-331 scope.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
Lifecycle Timeline
3DescriptionCVE.org
libexpat before 2.7.6 uses insufficient entropy, and thus hash flooding can occur via a crafted XML document.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
In 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-23276
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB