Skip to main content

libxml2 CVE-2026-11979

| EUVDEUVD-2026-40092 LOW
Stack-based Buffer Overflow (CWE-121)
2026-06-29 CERT-PL GHSA-h67q-h62w-5mjr
1.8
CVSS 4.0 · Vendor: CERT-PL
View

Attack ChainAIDerived

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

  1. Access
    Gain local system access
  2. Delivery
    Invoke xmlcatalog --shell mode
  3. Exploit
    Supply oversized input string
  4. Execution
    Overflow stack buffers in usershell()
  5. Persist
    Corrupt stack frame and return address
  6. Impact
    Crash process or redirect execution

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Stack buffer bounds checking
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the attacker or victim explicitly invoke the xmlcatalog utility with the --shell flag to enter interactive shell mode - this is a non-default, non-automated invocation that is not triggered during any normal XML processing workflow or library API call. Local system access is required (AV:L per CVSS 4.0); the vulnerability cannot be triggered remotely. Active user interaction is required (UI:A per CVSS 4.0): a user must deliberately run xmlcatalog in shell mode and supply the malicious input, making self-exploitation or social engineering the realistic attack path. An attack precondition must be met (AT:P): the xmlcatalog binary must be installed, accessible, and actively used in --shell mode. The overflow is bounded to the xmlcatalog process and does not affect libxml2 when used as a shared library by other applications. Primary limiting factors are: mandatory local access, non-default interactive invocation mode, required user-initiated action, and modern stack protections (SSP/ASLR) that impede reliable code execution beyond a crash.

Impact

The CVSS 4.0 score of 1.8 (AV:L/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:L/SC:L/SI:L/SA:N) places this at the lowest practical severity tier. Attack Vector is Local, requiring authenticated shell access to the host; there is no remote attack path. User Interaction is Active (UI:A), meaning a user must deliberately invoke xmlcatalog with the --shell flag - not an incidental or automated action. The Attack Prerequisites flag (AT:P) further acknowledges that this interactive mode must be in use. No EPSS score was provided in the available intelligence; the CVE is absent from CISA KEV, confirming no known active exploitation. No public proof-of-concept code has been identified. The 'RCE' tag reflects the theoretical worst case - control-flow hijack via stack corruption - but practical exploitation against hardened modern systems is unlikely, with a process crash being the realistic outcome. The maintainers' explicit position that this is a bug rather than a vulnerability further deprioritizes urgency. The overall signal set consistently indicates a narrow, low-risk issue with a minimal real-world attack surface.

Exploit ScenarioDerived

A local user on a Linux system runs xmlcatalog with the --shell flag to enter interactive mode, then supplies or pipes an excessively long input string, overflowing the fixed-size command/arg/argv buffers in usershell() and corrupting the stack frame. On systems without effective stack canaries or with exploitable memory layouts, this could permit a ROP-chain or shellcode execution within the xmlcatalog process context; on hardened systems, the realistic outcome is a process crash. No public exploit code has been identified at time of analysis.

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

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

Alert me

AnalysisAIv1 – Jun 29, 2026

Stack-based buffer overflows in libxml2's xmlcatalog utility enable memory corruption and potential arbitrary code execution when the tool is invoked in its interactive --shell mode. The usershell() function writes user-supplied input into fixed-size stack buffers (command, arg, argv) without any length validation, allowing overflow of adjacent stack memory including return addresses. Real-world risk is very low: exploitation requires local access, deliberate user invocation of a non-default shell mode, and an attack precondition - reflected in the CVSS 4.0 score of 1.8 - with no public exploit or active exploitation identified. Notably, libxml2 maintainers disputed the security classification, treating this as a bug rather than a vulnerability.

RemediationAI

The upstream fix is available as GitLab commit c2e233fc (https://gitlab.gnome.org/GNOME/libxml2/-/commit/c2e233fc1b341685fc99621b2768b503f777a72e); a formally tagged patched release version has not been confirmed from available data - monitor the libxml2 GNOME GitLab repository for a tagged release incorporating this commit and apply it once available. As an immediate compensating control, restrict or remove execution permissions on the xmlcatalog binary for unprivileged users (e.g., chmod 750 /usr/bin/xmlcatalog or equivalent), which fully eliminates the attack surface with no impact on the libxml2 library's XML parsing functionality used by other applications and services. Enforcing a policy that prohibits interactive use of xmlcatalog --shell mode in production environments provides additional risk reduction at no operational cost. Note that because the libxml2 maintainers dispute the security classification, downstream Linux distribution maintainers may not backport this fix on an accelerated schedule, requiring manual application from the upstream commit if organizational policy demands earlier remediation.

Affected VersionsENISA

libxml2 0 ≤2.15.3

Affected Packages

euvd libxml2 no fix

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:*:*:*:*:*:*:*:*) is an open-source XML parsing library maintained by the GNOME project and shipped in virtually all Linux and Unix distributions. The affected component is the xmlcatalog command-line utility, specifically its interactive --shell mode implemented in the usershell() function. The root cause is CWE-121 (Stack-based Buffer Overflow): usershell() allocates fixed-size arrays on the call stack to hold parsed command tokens, arguments, and argv entries but performs no bounds checking on input length, so an excessively long input line overwrites adjacent stack memory including saved frame pointers and return addresses. Modern hardening measures - stack canaries (SSP), ASLR, and non-executable stack - raise the practical bar for reliable code execution, but a crash-level denial-of-service against the xmlcatalog process is straightforward to trigger.

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 (CERT-PL) PRIMARY 1.8 LOW
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:L/SC:L/SI:L/SA:N
vuln.today AI 3.3 LOW

Local vector with no privileges required to run xmlcatalog; user must actively invoke --shell mode (UI:R); impact is limited to process crash (A:L) within the unchanged xmlcatalog process scope.

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

Primary rating from Vendor (CERT-PL).

CVSS VectorVendor: CERT-PL

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
Active
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

DescriptionCVE.org

libxml2 is vulnerable to multiple stack-based buffer overflows in the xmlcatalog utility when running in --shell mode. The usershell() function processes user input using fixed-size stack buffers without proper bounds checking. By supplying an overly long input line, an attacker can overflow internal buffers (command, arg, and argv) during input parsing. This results in memory corruption within the stack frame. Successful exploitation may cause a crash or potentially allow arbitrary code execution in the context of the xmlcatalog process.

This issue has been fixed in the commit c2e233fc.

NOTE: The maintainers of this project did not agree that this issue is a vulnerability and considered it a bug.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
High
core XML library bundled in most Linux distributions and countless applications
Social Media
1
Sightings
Data Quality
7 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.2%
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
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

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

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

A stack-based buffer overflow occurs when a program writes more data to a buffer located on the stack than it was allocated to hold.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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