Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver XML referencing an external entity
-
DeliveryApplication creates external-entity subparser
-
ExploitForce empty non-final first parse (control chunking)
-
ExecutionLater parse hits XML_TOK_NONE mishandling
-
ImpactNULL dereference crashes application (DoS)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK
1 technique across 1 tactic: Impact 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-influenced XML that triggers an external entity reference and to create an external-entity subparser via XML_ExternalEntityParserCreate (i.e., an external-entity-ref handler is in use). The attacker must also control stream chunking so that the subparser's first parse is an empty, non-final buffer (XML_TOK_NONE, isFinal=XML_FALSE), which is the precise precondition the CVSS 4.0 AT:P flag reflects. Limiting factors: the application must use external-entity subparsing (not universal), the attacker must be able to influence how input is split across XML_Parse calls, and the maximum impact is a crash (availability only) - no code execution or data disclosure. Affected: libexpat through 2.9.0; the fix is available via vendor PR #1444 / commit 7b0d50e4. |
| Impact | This is a denial-of-service NULL pointer dereference (CWE-476) in libexpat, confirmed and detailed by the vendor's own patch (PR #1444, commit 7b0d50e4) and a VulnCheck advisory, so the mechanism is well-established rather than speculative. The only supplied score is CVSS 4.0 (8.2, computed with VA:H but VC:N/VI:N) - impact is strictly availability, meaning a crash of the parsing application, with no confidentiality or integrity loss. The 8.2 is elevated because availability is High and privileges/UI are none, but the AT:P flag (attack requirement present) reflects that exploitation is not unconditional: the attacker must control how the input stream is chunked. No EPSS probability, no CISA KEV listing, and no confirmed public exploit were provided; the only exploitation-relevant code is the regression test shipped with the fix, not a weaponized PoC. The vuln.today decision label is 'this_week', consistent with a widely-deployed library DoS that warrants prompt patching but is not flagged for emergency action. Net: a genuine priority because libexpat is ubiquitous and the flaw is remotely reachable, but the real-world risk is moderated by the DoS-only impact and the non-trivial precondition that the attacker control stream chunking into a specific external-entity subparser code path. |
| Exploit ScenarioDerived | An application uses libexpat to parse attacker-supplied XML and registers an external-entity handler that creates a subparser (XML_ExternalEntityParserCreate). The attacker supplies input crafted so the subparser receives an empty, non-final first buffer, which mishandles the XML_TOK_NONE token; a subsequent parse call then dereferences a NULL pointer in externalEntityInitProcessor2() and crashes the process. No public weaponized exploit was provided - only the vendor's regression test demonstrates the crash condition. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
A denial-of-service NULL pointer dereference (CWE-476) in libexpat through 2.9.0 lets remote, unauthenticated attackers crash applications that parse XML with external-entity subparsing enabled, by controlling how input is split across XML_Parse calls so an external-entity subparser's first parse is an empty, non-final buffer. Only availability is affected (VC:N/VI:N/VA:H) and there is no memory corruption, code execution, or data exposure described; the vendor's own patch (PR #1444, commit 7b0d50e4) plus a VulnCheck advisory make the mechanism well-established rather than speculative. No public exploit code and no CISA KEV entry were identified at time of analysis, though exploitation has real preconditions: the application must use XML_ExternalEntityParserCreate via an external-entity-ref handler and the attacker must influence stream chunking.
RemediationAI
The fix is upstream in libexpat: pull PR https://github.com/libexpat/libexpat/pull/1444 or the commit https://github.com/libexpat/libexpat/commit/7b0d50e4b1d16fafd55876260701e04279a7489d, which adds the missing XML_TOK_NONE handling plus a regression test (test_misc_empty_nonfinal_subparser_parse) in expat/tests/misc_tests.c; this is an upstream fix available as a PR/commit, and a released patched version number is not independently confirmed in the supplied data, so verify the version that ships the change before advertising one internally. Consumers of bundled expat should track their platform or vendor rebuild rather than only updating a system package, and patch rollout is scheduled this week per the vuln.today priority label. Where patching must wait, the effective compensating control is to stop exercising the vulnerable path: do not create external-entity subparsers (avoid XML_ExternalEntityParserCreate in external-entity-ref handlers, or refuse external entity references outright), with the trade-off that legitimate DTD/external entity resolution stops working for those documents; alternatively guarantee that a subparser's first XML_Parse call is never an empty non-final buffer (for example buffer input so the subparser's first call carries content or is marked final), which depends entirely on application code you control and is fragile against future chunking changes. No authentication or network filtering measure removes the exposure, since the precondition lives in the parsing library rather than the endpoint.
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 the widely embedded C XML parser (CPE cpe:2.3:a:libexpat:libexpat, all versions through 2.9.0). The flaw sits in externalEntityInitProcessor2() in lib/xmlparse.c, one of the parsing stages used after a parser has been switched into external-entity processing. When the parser is handed an empty buffer that is not the final buffer, the tokenizer returns XML_TOK_NONE; the vulnerable code did not handle that token in this processor and proceeded with a NULL/invalid pointer, so the subsequent parse crashes the process. The fix adds an explicit XML_TOK_NONE case that, when the buffer is not final, sets the end pointer to the start of input and returns XML_ERROR_NONE so parsing resumes cleanly on the next chunk. Because the defect is only reachable through a subparser created with XML_ExternalEntityParserCreate and depends on the attacker's control over chunk boundaries, the vendor and the independent assessment both treat this as a high-complexity availability issue (CVSS 3.1 AV:N/AC:H/PR:N/UI:N/A:H) rather than a generic parser crash; the trigger otherwise requires an external entity reference in attacker-influenced XML, which is not universal across expat deployments.
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:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Remotely reachable XML with no auth or UI, but requires attacker control over stream chunking to force the empty non-final first parse, so AC:H; crash-only, hence C:N/I:N/A:H.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
libexpat through 2.9.0 contains a NULL pointer dereference vulnerability in externalEntityInitProcessor2() in lib/xmlparse.c that mishandles the XML_TOK_NONE token from empty input. Attackers who control stream chunking can force an empty non-final first parse on an external entity subparser, causing a later parse to crash the application.
Executive ViewAI
CVE-2026-117610 is a high-severity denial-of-service vulnerability in libexpat (through 2.9.0) that allows remote, unauthenticated attackers to crash applications parsing XML with external-entity subparsing. This affects any product embedding libexpat that processes XML from untrusted sources, potentially disrupting service availability and business operations. Leadership should prioritize patching because the vulnerability is easy to trigger once preconditions are met, though no active exploitation has been observed.
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
A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).
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-111545
GHSA-v4h5-6r69-76p3
NVD
CVE.org
EPSS
Exploit-DB