Skip to main content

libxml2 CVE-2026-86141

| EUVDEUVD-2026-71834 LOW
Unchecked Return Value (CWE-252)
2026-09-05 mitre GHSA-7g6w-jj32-qj92
3.3
CVSS 3.1 · NVD
Temporal: 2.9
View

Attack ChainAIDerived

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

  1. Access
    Exhaust process heap memory
  2. Delivery
    Submit input triggering xmlRegNewParserCtxt()
  3. Exploit
    xmlStrdup() returns NULL
  4. Execution
    strlen(NULL) dereferences null pointer
  5. Impact
    Process 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.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

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

libxml2 0 <2.15.4

Affected Packages

euvd libxml2 fix: 2.15.4

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

Vendor (mitre) PRIMARY LOW
NVD 3.3 LOW
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
CIRCL (temporal) 2.9 LOW
vuln.today AI 2.9 LOW

Local vector and high complexity because OOM strdup failure must be induced; no C/I impact, only process crash.

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

Primary rating from Vendor (mitre).

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
Low

Lifecycle Timeline

3
CVSS changed
Sep 15, 2026 - 19:52 NVD
2.9 (LOW) 3.3 (LOW)
Patch available
Sep 05, 2026 - 06:01 EUVD
CVE Published
Sep 05, 2026 - 04:27 cve.org
LOW 2.9

DescriptionNVD

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

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Ubiquitous
core XML library in virtually every Linux, macOS, and language runtime
Data Quality
6 sources
Confidence: High

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 LOW
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Small
Automatable· derived
No
Human Impact· derived
High

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2025-6021 HIGH POC
7.5 Jun 12

Stack-based buffer overflow in libxml2's xmlBuildQName function allows remote unauthenticated attackers to crash affecte

CVE-2016-4658 CRITICAL
9.8 Sep 25

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

CVE-2016-1762 HIGH POC
8.1 Mar 24

The xmlNextChar function in libxml2 before 2.9.4 allows remote attackers to cause a denial of service (heap-based buffer

CVE-2016-1834 HIGH POC
7.8 May 20

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

CVE-2016-1840 HIGH POC
7.8 May 20

Heap-based buffer overflow in the xmlFAParsePosCharGroup function in libxml2 before 2.9.4, as used in Apple iOS before 9

CVE-2024-34459 HIGH POC
7.5

Alpine Linux: libxml2 fixed in 2.12.7-r0

CVE-2022-40303 HIGH
7.5 Nov 23

An issue was discovered in libxml2 before 2.10.3. Rated high severity (CVSS 7.5), this vulnerability is remotely exploit

CVE-2017-9047 HIGH POC
7.5 May 18

A buffer overflow was discovered in libxml2 20904-GITv2.9.4-16-g0741801. Rated high severity (CVSS 7.5), this vulnerabil

CVE-2016-4447 HIGH POC
7.5 Jun 09

The xmlParseElementDecl function in parser.c in libxml2 before 2.9.4 allows context-dependent attackers to cause a denia

CVE-2017-16932 HIGH
7.5 Nov 23

parser.c in libxml2 before 2.9.5 does not prevent infinite recursion in parameter entities. Rated high severity (CVSS 7.

CVE-2016-4483 HIGH POC
7.5 Apr 11

The xmlBufAttrSerializeTxtContent function in xmlsave.c in libxml2 allows context-dependent attackers to cause a denial

CVE-2013-1969 HIGH POC
7.5 Apr 25

Multiple use-after-free vulnerabilities in libxml2 2.9.0 and possibly other versions might allow context-dependent attac

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