Cloudanix VulnDB

CVE-2025-32414

None

CVSS

—

EPSS

0.4%

Published

Apr 8, 2025

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A memory handling mistake in a common XML library used by Python programs can let attackers crash applications or potentially take control of systems until the library is updated.

Exploitation
Other
Attacker needs
Low Privilege
Complexity
Moderate
Impact
Other
Component
Library
Class
Memory Corruption
Remediation
Upgrade
Effort
Low
Patch risk
Low

What it actually does

Out-of-bounds memory access in libxml2 Python bindings triggered by incorrect return value handling in xmlPythonFileRead and xmlPythonFileReadRaw due to bytes-versus-characters mismatch.

Why it matters to the business

Applications using the libxml2 Python API on affected systems may experience crashes, memory corruption, or potential remote code execution, leading to service disruption and increased remediation costs across dependent packages.

How an attack unfolds

An attacker supplies input that exercises the Python file read paths in libxml2, causing the incorrect return value to be used and resulting in out-of-bounds access; no named threat actors or campaigns are associated with this issue.

How to fix it

Upgrade libxml2 to 2.13.8 or 2.14.2 or later; for the listed Red Hat packages apply the updates to openssl 1:1.1.1c-21.el8_2 and for gnome/libxml2 apply commit eb0a2f2b91566384f378d870ffcd69c0a24162cc.

How to confirm the fix worked

Confirm the installed libxml2 version is at or above the fixed releases and test that Python bindings no longer exhibit the return-value mismatch on crafted input.

Typical attack path

  1. Identify an application that uses libxml2 Python bindings to parse or read XML content
  2. Craft or supply malicious input that reaches xmlPythonFileRead or xmlPythonFileReadRaw
  3. Trigger the bytes/characters mismatch to induce out-of-bounds memory access
  4. Leverage resulting memory corruption for denial of service or code execution

How to detect it

Review application logs and Python traceback entries for errors originating from xmlPythonFileRead or xmlPythonFileReadRaw; inspect process memory dumps for out-of-bounds access patterns after XML parsing operations.

What your security team should do

  • Prioritize patching libxml2 in environments with Python bindings in use
  • Scan for and update all listed Red Hat openssl and gnome/libxml2 packages to the specified fixed versions
  • Monitor EPSS trend and reassess if exploit maturity increases

The record

In libxml2 before 2.13.8 and 2.14.x before 2.14.2, out-of-bounds memory access can occur in the Python API (Python bindings) because of an incorrect return value. This occurs in xmlPythonFileRead and xmlPythonFileReadRaw because of a difference between bytes and characters.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:10 libxml2 0 2.12.5-9.el10_0
AlmaLinux:10 libxml2-devel 0 2.12.5-9.el10_0
AlmaLinux:10 libxml2-static 0 2.12.5-9.el10_0
AlmaLinux:10 python3-libxml2 0 2.12.5-9.el10_0
AlmaLinux:8 libxml2 0 2.9.7-20.el8_10
AlmaLinux:8 libxml2-devel 0 2.9.7-20.el8_10
AlmaLinux:8 python3-libxml2 0 2.9.7-20.el8_10
AlmaLinux:9 libxml2 0 2.9.13-12.el9_6
AlmaLinux:9 libxml2-devel 0 2.9.13-12.el9_6
AlmaLinux:9 python3-libxml2 0 2.9.13-12.el9_6
Alpine:v3.18 libxml2 0 2.11.8-r3
Alpine:v3.19 libxml2 0 2.11.8-r3
Alpine:v3.20 libxml2 0 2.12.7-r3
Alpine:v3.21 libxml2 0 2.13.4-r6
Alpine:v3.22 libxml2 0 2.13.8-r0
Chainguard openjdk-11-openj9 0 0.53.0-r0
Chainguard openjdk-11-openj9-dbg 0 0.53.0-r0
Chainguard openjdk-11-openj9-default-jdk 0 0.53.0-r0
Chainguard openjdk-11-openj9-default-jvm 0 0.53.0-r0
Chainguard openjdk-11-openj9-default-policy 0 0.53.0-r0
Chainguard openjdk-11-openj9-doc 0 0.53.0-r0
Chainguard openjdk-11-openj9-jmods 0 0.53.0-r0
Chainguard openjdk-11-openj9-jre 0 0.53.0-r0
Chainguard openjdk-17-openj9 0 0.53.0-r0
Chainguard openjdk-17-openj9-dbg 0 0.53.0-r0
Chainguard openjdk-17-openj9-default-jdk 0 0.53.0-r0
Chainguard openjdk-17-openj9-default-jvm 0 0.53.0-r0
Chainguard openjdk-17-openj9-default-policy 0 0.53.0-r0
Chainguard openjdk-17-openj9-doc 0 0.53.0-r0
Chainguard openjdk-17-openj9-jmods 0 0.53.0-r0
Chainguard openjdk-17-openj9-jre 0 0.53.0-r0
Chainguard openjdk-21-openj9 0 0.53.0-r0
Chainguard openjdk-21-openj9-dbg 0 0.53.0-r0
Chainguard openjdk-21-openj9-default-jdk 0 0.53.0-r0
Chainguard openjdk-21-openj9-default-jvm 0 0.53.0-r0
Chainguard openjdk-21-openj9-default-policy 0 0.53.0-r0
Chainguard openjdk-21-openj9-doc 0 0.53.0-r0
Chainguard openjdk-21-openj9-jmods 0 0.53.0-r0
Chainguard openjdk-21-openj9-jre 0 0.53.0-r0
Chainguard openjdk-8-openj9 0 0.53.0-r1
Chainguard openjdk-8-openj9-dbg 0 0.53.0-r1
Chainguard openjdk-8-openj9-default-jdk 0 0.53.0-r1
Chainguard openjdk-8-openj9-default-jvm 0 0.53.0-r1
Chainguard openjdk-8-openj9-doc 0 0.53.0-r1
Chainguard openjdk-8-openj9-jre 0 0.53.0-r1
Debian:11 libxml2 0 No fix
Debian:12 libxml2 0 No fix
Debian:13 libxml2 0 No fix
Debian:13 libxml2 0 2.12.7+dfsg+really2.9.14-1
Debian:14 libxml2 0 2.12.7+dfsg+really2.9.14-1
Mageia:9 libxml2 0 2.10.4-1.7.mga9
SUSE:Linux Enterprise Micro 5.1 libxml2 0 2.9.7-150000.3.79.1
SUSE:Linux Enterprise Micro 5.2 libxml2 0 2.9.7-150000.3.79.1
SUSE:Linux Enterprise Micro 5.2 python-libxml2-python 0 2.9.7-150000.3.79.1
SUSE:Linux Enterprise Micro 5.5 libxml2 0 2.10.3-150500.5.26.1
SUSE:Linux Enterprise Micro 5.5 libxml2-python 0 2.10.3-150500.5.26.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 libxml2 0 2.10.3-150500.5.26.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 libxml2-python 0 2.10.3-150500.5.26.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 libxml2-python 0 2.10.3-150500.5.26.1
SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 libxml2 0 2.9.4-46.84.1
SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 python-libxml2 0 2.9.4-46.84.1
openSUSE:Leap 15.6 libxml2 0 2.10.3-150500.5.26.1
openSUSE:Leap 15.6 libxml2-python 0 2.10.3-150500.5.26.1
openSUSE:Leap 15.6 python-libxml2-python 0 2.9.7-150000.3.79.1
openSUSE:Tumbleweed libxml2 0 2.13.8-1.1

Related vulnerabilities