CVE-2024-55549
NoneCVSS
—
EPSS
0.4%
Published
Mar 14, 2025
CISA due date
—
Cloudanix analysis
A bug in a common library for transforming XML data can let attackers crash programs or potentially run harmful code when processing certain stylesheets.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Other
- Component
- Library
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Use-after-free vulnerability in xsltGetInheritedNsList triggered when excluding result prefixes during XSLT processing in libxslt before 1.1.43, leading to memory corruption.
Why it matters to the business
Applications relying on XML transformations may crash or be susceptible to remote code execution, potentially disrupting services that parse untrusted XSLT stylesheets; low exploitation likelihood based on EPSS and absence from KEV reduces immediate operational urgency.
How an attack unfolds
An attacker supplies a crafted XSLT stylesheet that exercises the result prefix exclusion path in xsltGetInheritedNsList, causing the use-after-free condition that can be leveraged for memory corruption and arbitrary code execution.
How to fix it
Upgrade libxslt to version 1.1.43 or later; apply the fix present in commit 71be7a32637760d769b193d95e0c745ecb86b679 across all affected products.
How to confirm the fix worked
Verify installed libxslt version is 1.1.43 or newer; re-run regression tests covering namespace inheritance and result prefix exclusion scenarios.
Typical attack path
- Identify application entry points that process untrusted XSLT or XML documents via libxslt
- Craft malicious stylesheet exploiting result prefix exclusion logic
- Trigger xsltGetInheritedNsList to induce use-after-free
- Corrupt memory state to achieve code execution or denial of service
How to detect it
Monitor application logs for segmentation faults or crashes during XSLT processing; inspect memory dumps or sanitizer reports for use-after-free patterns in libxslt namespace handling functions.
What your security team should do
- Prioritize upgrade of libxslt to 1.1.43 or the referenced commit in all dependencies
- Inventory applications and libraries using libxslt for XSLT processing
- Implement input validation or sandboxing around XSLT transformations until patched
The record
xsltGetInheritedNsList in libxslt before 1.1.43 has a use-after-free issue related to exclusion of result prefixes.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:10 | libxslt | 0 | 1.1.39-7.el10_0 |
| AlmaLinux:10 | libxslt-devel | 0 | 1.1.39-7.el10_0 |
| AlmaLinux:8 | libxslt | 0 | 1.1.32-6.1.el8_10 |
| AlmaLinux:8 | libxslt-devel | 0 | 1.1.32-6.1.el8_10 |
| AlmaLinux:9 | libxslt | 0 | 1.1.34-9.el9_5.2 |
| AlmaLinux:9 | libxslt | 0 | 1.1.34-13.el9_6 |
| AlmaLinux:9 | libxslt-devel | 0 | 1.1.34-9.el9_5.2 |
| AlmaLinux:9 | libxslt-devel | 0 | 1.1.34-13.el9_6 |
| Alpine:v3.18 | libxslt | 0 | 1.1.38-r1 |
| Alpine:v3.19 | libxslt | 0 | 1.1.39-r1 |
| Alpine:v3.20 | libxslt | 0 | 1.1.39-r2 |
| Alpine:v3.21 | libxslt | 0 | 1.1.42-r2 |
| Alpine:v3.22 | libxslt | 0 | 1.1.43-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 | libxslt | 0 | No fix |
| Debian:11 | libxslt | 0 | 1.1.34-4+deb11u2 |
| Debian:12 | libxslt | 0 | No fix |
| Debian:12 | libxslt | 0 | 1.1.35-1+deb12u1 |
| Debian:13 | libxslt | 0 | No fix |
| Debian:14 | libxslt | 0 | 1.1.35-1.2 |
| Mageia:9 | libxslt | 0 | 1.1.38-1.1.mga9 |
| SUSE:Enterprise Storage 7.1 | libxslt | 0 | 1.1.32-150000.3.17.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | libxslt | 0 | 1.1.32-150000.3.17.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | libxslt | 0 | 1.1.34-150400.3.6.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | libxslt | 0 | 1.1.34-150400.3.6.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | libxslt | 0 | 1.1.34-150400.3.6.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | libxslt | 0 | 1.1.34-150400.3.6.1 |
| SUSE:Linux Enterprise Micro 5.1 | libxslt | 0 | 1.1.32-150000.3.17.1 |
| SUSE:Linux Enterprise Micro 5.2 | libxslt | 0 | 1.1.32-150000.3.17.1 |
| SUSE:Linux Enterprise Micro 5.3 | libxslt | 0 | 1.1.34-150400.3.6.1 |
| SUSE:Linux Enterprise Micro 5.4 | libxslt | 0 | 1.1.34-150400.3.6.1 |
| SUSE:Linux Enterprise Micro 5.5 | libxslt | 0 | 1.1.34-150400.3.6.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | libxslt | 0 | 1.1.34-150400.3.6.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | libxslt | 0 | 1.1.34-150400.3.6.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | libxslt | 0 | 1.1.32-150000.3.17.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | libxslt | 0 | 1.1.34-150400.3.6.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | libxslt | 0 | 1.1.34-150400.3.6.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | libxslt | 0 | 1.1.32-150000.3.17.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | libxslt | 0 | 1.1.34-150400.3.6.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | libxslt | 0 | 1.1.34-150400.3.6.1 |
| SUSE:Manager Proxy 4.3 | libxslt | 0 | 1.1.34-150400.3.6.1 |
| SUSE:Manager Server 4.3 | libxslt | 0 | 1.1.34-150400.3.6.1 |
| openSUSE:Leap 15.6 | libxslt | 0 | 1.1.34-150400.3.6.1 |
| openSUSE:Leap 15.6 | libxslt-python | 0 | 1.1.32-150000.3.17.1 |
| openSUSE:Tumbleweed | libqt5-qtwebengine | 0 | 5.15.19-1.1 |
| openSUSE:Tumbleweed | libxslt | 0 | 1.1.43-1.1 |
Related vulnerabilities
- CVE-2025-24855 numbers.c in libxslt before 1.1.43 has a use-after-free because, in nested XPath… Also affects libxslt
- CVE-2023-40403 The issue was addressed with improved memory handling. Also affects libxslt
- CVE-2019-13117 In numbers.c in libxslt 1.1.33, an xsl:number with certain format strings could lead to a… Also affects libxslt
- CVE-2019-11068 libxslt through 1.1.33 allows bypass of a protection mechanism because callers of… Also affects libxslt
- CVE-2017-5029 The xsltAddTextString function in transform.c in libxslt 1.1.29, as used in Blink in… Also affects libxslt
- CVE-2026-21945 Vulnerability in the Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise… Also affects openjdk-11-openj9
- CVE-2026-21932 Vulnerability in the Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise… Also affects openjdk-11-openj9
- CVE-2026-21933 Vulnerability in the Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise… Also affects openjdk-11-openj9