CVE-2019-18197

7.5 HIGH

📋 TL;DR

CVE-2019-18197 is a use-after-free vulnerability in libxslt's XSLT transformation function that can lead to memory corruption. When exploited, it could allow attackers to write outside buffer boundaries or disclose uninitialized memory data. This affects any application using vulnerable versions of libxslt for XML/XSLT processing.

💻 Affected Systems

Products:
  • libxslt
  • Applications using libxslt library (e.g., web browsers, XML processors, various Linux packages)
Versions: libxslt 1.1.33 and earlier versions
Operating Systems: Linux distributions, Unix-like systems, Windows if libxslt is installed
Default Config Vulnerable: ⚠️ Yes
Notes: Applications must use the vulnerable xsltCopyText function in transform.c to be affected. Many Linux distributions ship libxslt as part of their packages.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise if the vulnerable library is used in a network service processing untrusted XSLT content.

🟠

Likely Case

Application crash (denial of service) or information disclosure of memory contents, potentially including sensitive data.

🟢

If Mitigated

Limited impact if proper memory protections (ASLR, DEP) are enabled and the application has proper privilege separation.

🌐 Internet-Facing: MEDIUM - Risk depends on whether internet-facing applications process untrusted XSLT content using libxslt.
🏢 Internal Only: LOW - Lower risk for internal systems unless they process untrusted XSLT content from internal sources.

🎯 Exploit Status

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

Exploitation requires crafting malicious XSLT content that triggers the use-after-free condition. Public proof-of-concept exists in security advisories.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: libxslt 1.1.34 and later

Vendor Advisory: http://xmlsoft.org/xslt/

Restart Required: Yes

Instructions:

1. Update libxslt package to version 1.1.34 or later. 2. For Linux distributions: Use package manager (apt-get update && apt-get upgrade libxslt1.1, yum update libxslt, etc.). 3. Recompile applications if statically linked. 4. Restart affected services.

🔧 Temporary Workarounds

Disable XSLT processing

all

If possible, disable XSLT processing in applications that use libxslt

Input validation

all

Implement strict input validation for XSLT content before processing

🧯 If You Can't Patch

  • Implement network segmentation to isolate systems using vulnerable libxslt
  • Deploy memory protection mechanisms (ASLR, DEP) and monitor for crashes

🔍 How to Verify

Check if Vulnerable:

Check libxslt version: xsltproc --version or locate libxslt library and check version

Check Version:

xsltproc --version 2>/dev/null | head -1

Verify Fix Applied:

Verify libxslt version is 1.1.34 or later: xsltproc --version | grep -q '1.1.3[4-9]\|1.1.[4-9]'

📡 Detection & Monitoring

Log Indicators:

  • Application crashes related to libxslt or XSLT processing
  • Memory access violation errors in application logs

Network Indicators:

  • Unusual XSLT content being sent to applications
  • Traffic patterns indicating attempted exploitation

SIEM Query:

source="application.logs" AND ("libxslt" OR "xslt" OR "XSLT") AND ("crash" OR "segfault" OR "memory")

🔗 References

📤 Share & Export