CVE-2019-5815

7.5 HIGH

📋 TL;DR

This is a type confusion vulnerability in libxslt's xsltNumberFormatGetMultipleLevel function that could allow heap corruption via specially crafted XML data. Attackers could potentially execute arbitrary code or cause denial of service. Affects applications using vulnerable libxslt versions to process untrusted XML/XSLT content.

💻 Affected Systems

Products:
  • libxslt
  • Applications using libxslt (e.g., web browsers, XML processors, document converters)
Versions: libxslt versions prior to 1.1.33
Operating Systems: Linux, Windows, macOS, BSD
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability triggers when processing malicious XML/XSLT content. Applications must use libxslt for transformation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise, data theft, or ransomware deployment.

🟠

Likely Case

Application crash causing denial of service, potentially leading to data corruption in affected systems.

🟢

If Mitigated

Limited impact with proper input validation and sandboxing, potentially just crashes in isolated processes.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires crafting malicious XML/XSLT content. Public proof-of-concept exists in Chromium bug reports.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: libxslt 1.1.33 and later

Vendor Advisory: https://gitlab.gnome.org/GNOME/libxslt/commit/08b62c25871b38d5d573515ca8a065b4b8f64f6b

Restart Required: Yes

Instructions:

1. Update libxslt to version 1.1.33 or later using your package manager. 2. For Linux: 'sudo apt update && sudo apt upgrade libxslt1.1' (Debian/Ubuntu) or 'sudo yum update libxslt' (RHEL/CentOS). 3. Restart affected applications/services. 4. Recompile applications statically linked to libxslt with updated library.

🔧 Temporary Workarounds

Disable XSLT processing

all

Prevent processing of XSLT stylesheets in applications where not required

Application-specific configuration to disable XSLT support

Input validation and sanitization

all

Validate and sanitize XML input before processing with libxslt

Implement XML schema validation
Use whitelisting for allowed XML elements

🧯 If You Can't Patch

  • Implement network segmentation to isolate vulnerable systems
  • Deploy web application firewall with XML/XSLT filtering rules

🔍 How to Verify

Check if Vulnerable:

Check libxslt version: 'xsltproc --version' or 'dpkg -l libxslt1.1' (Debian) or 'rpm -q libxslt' (RHEL). If version is earlier than 1.1.33, system is vulnerable.

Check Version:

xsltproc --version | head -1

Verify Fix Applied:

Confirm libxslt version is 1.1.33 or later using version check commands. Test XML processing functionality remains operational.

📡 Detection & Monitoring

Log Indicators:

  • Application crashes with segmentation faults
  • Memory corruption errors in application logs
  • Unusual XML processing patterns

Network Indicators:

  • Large or malformed XML payloads to XML processing endpoints
  • Unusual traffic to XML/XSLT transformation services

SIEM Query:

source="application.logs" AND ("segmentation fault" OR "heap corruption" OR "libxslt")

🔗 References

📤 Share & Export