Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessExhaust process heap memory
-
DeliverySubmit input triggering xmlRegNewParserCtxt()
-
ExploitxmlStrdup() returns NULL
-
Executionstrlen(NULL) dereferences null pointer
-
ImpactProcess crash (DoS)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Return value checking
|
| Exploitation Conditions | Exploitation requires three concurrent conditions: (1) the target application must invoke libxml2's regexp subsystem (xmlRegNewParserCtxt via xmlregexp.c) - applications that parse XML but never process XML Schema regular expressions are unaffected; (2) a strdup/malloc failure must occur at the exact moment of the xmlStrdup() call inside xmlRegNewParserCtxt(), requiring the process or system to be in an out-of-memory state; and (3) attack vector is local (AV:L), so the attacker must be able to influence the memory state of the host system. No network-reachable exploitation path is described. The vulnerability does not trigger under normal memory conditions, substantially limiting exploitability beyond edge-case resource-exhaustion scenarios. |
| Impact | Real-world risk is very low despite libxml2's ubiquitous deployment. The CVSS 3.1 vector CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L correctly reflects the key constraints: attack vector is local (AV:L) and complexity is high (AC:H) because triggering the flaw requires inducing a strdup/malloc failure - an OOM condition - at precisely the moment xmlRegNewParserCtxt() is executing. This is not remotely exploitable unless the calling application exposes XML regex processing directly to network input AND is simultaneously under attacker-controlled memory pressure, an exceptionally narrow scenario. Impact is limited to A:L (process crash), with no confidentiality or integrity consequences. No KEV listing, no public POC, and EPSS is not provided but expected to be negligibly low for this class of issue. The CVSS base score of 2.9 is consistent with the realistic threat model. Priority for patching is low except in environments where libxml2 processes untrusted regex patterns in long-running, memory-constrained daemons. |
| Exploit ScenarioDerived | An attacker with local access to a system running a memory-constrained application that uses libxml2's regexp engine (such as a document parser or XML schema validator) artificially exhausts available heap memory, then causes the application to parse an XML schema containing a regular expression. When xmlRegNewParserCtxt() calls xmlStrdup() and malloc returns NULL, the subsequent strlen(NULL) dereferences a null pointer, crashing the process. No public exploit code exists for this scenario. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 05, 2026
NULL pointer dereference in libxml2's xmlRegNewParserCtxt() function crashes any application invoking the XML regular-expression engine under memory-pressure conditions. Versions before 2.15.4 call strlen() on the return value of xmlStrdup() without first verifying the pointer is non-NULL; when strdup() fails due to memory exhaustion, the subsequent strlen(NULL) causes a process crash. No confidentiality or integrity impact is possible - the vulnerability is limited to a local, high-complexity denial-of-service. No public exploit or CISA KEV listing exists; the fix shipped in libxml2 2.15.4.
RemediationAI
Upgrade libxml2 to version 2.15.4 or later; the fix is confirmed in upstream commit e89a8aae4c9b40cdafcf66b3f9e57c62db37bb55 (https://github.com/GNOME/libxml2/commit/e89a8aae4c9b40cdafcf66b3f9e57c62db37bb55). Distributions with backport policies should apply their vendor-specific security updates against the 2.15.x branch. For environments where upgrading immediately is not feasible, the only meaningful compensating control is to restrict applications that invoke xmlregexp to operate with generous memory headroom and to avoid exposing XML regular-expression processing directly to untrusted input, which reduces the probability of triggering the OOM condition required for exploitation. There are no reported side effects of the upstream patch itself.
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
libxml2 (CPE cpe:2.3:a:xmlsoft:libxml2:*:*:*:*:*:*:*:*, all versions before 2.15.4) is the canonical C XML parsing library used across virtually every Linux distribution, macOS, and hundreds of language runtimes. The vulnerable code path is in xmlregexp.c within xmlRegNewParserCtxt(), which initialises the internal regex parser context. The function calls xmlStrdup() - a wrapper around strdup() - to copy the input pattern string into ret->string, then immediately passes ret->string to strlen() without verifying that xmlStrdup() succeeded. CWE-252 (Unchecked Return Value) describes this class precisely: the codebase performs a NULL-check elsewhere in the allocation sequence but omits it specifically between the strdup call and the strlen call, violating the post-condition contract for fallible allocators. The fix (commit e89a8aae4c9b40cdafcf66b3f9e57c62db37bb55) adds the missing NULL guard so strlen() is only reached when ret->string is valid.
Know when Libxml2 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:L/PR:L/UI:N/S:U/C:N/I:N/A:L
Local vector and high complexity because OOM strdup failure must be induced; no C/I impact, only process crash.
Primary rating from Vendor (mitre).
CVSS VectorNVD
Lifecycle Timeline
3DescriptionNVD
xmlregexp in libxml2 before 2.15.4 has a NULL pointer dereference in xmlRegNewParserCtxt after a strdup failure, i.e., it does not calculate a string length after NULL checking.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Stack-based buffer overflow in libxml2's xmlBuildQName function allows remote unauthenticated attackers to crash affecte
xpointer.c in libxml2 before 2.9.5 (as used in Apple iOS before 10, OS X before 10.12, tvOS before 10, and watchOS befor
The xmlNextChar function in libxml2 before 2.9.4 allows remote attackers to cause a denial of service (heap-based buffer
Heap-based buffer overflow in the xmlStrncat function in libxml2 before 2.9.4, as used in Apple iOS before 9.3.2, OS X b
Heap-based buffer overflow in the xmlFAParsePosCharGroup function in libxml2 before 2.9.4, as used in Apple iOS before 9
Alpine Linux: libxml2 fixed in 2.12.7-r0
An issue was discovered in libxml2 before 2.10.3. Rated high severity (CVSS 7.5), this vulnerability is remotely exploit
A buffer overflow was discovered in libxml2 20904-GITv2.9.4-16-g0741801. Rated high severity (CVSS 7.5), this vulnerabil
The xmlParseElementDecl function in parser.c in libxml2 before 2.9.4 allows context-dependent attackers to cause a denia
parser.c in libxml2 before 2.9.5 does not prevent infinite recursion in parameter entities. Rated high severity (CVSS 7.
The xmlBufAttrSerializeTxtContent function in xmlsave.c in libxml2 allows context-dependent attackers to cause a denial
Multiple use-after-free vulnerabilities in libxml2 2.9.0 and possibly other versions might allow context-dependent attac
EUVD-2026-71834
GHSA-7g6w-jj32-qj92
NVD
CVE.org
EPSS
VulDB
Exploit-DB