Cloudanix VulnDB

CVE-2019-11068

Critical · 9.8

CVSS

9.8

EPSS

5.2%

Published

Apr 10, 2019

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A flaw in a common library for handling document stylesheets lets attackers reach files or systems they should not be able to access.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Full Compromise
Component
Library
Class
Authorization Bypass
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Bypass of xsltCheckRead and xsltCheckWrite protection checks in libxslt, where a -1 error return from xsltCheckRead for a crafted but valid URL still permits subsequent loading, enabling unauthorized file or resource access.

Why it matters to the business

Applications relying on libxslt for XML stylesheet processing face elevated risk of data exposure or remote compromise; the library's widespread use in document handling pipelines amplifies exposure across many systems despite the flaw's age.

How an attack unfolds

An attacker supplies a crafted XSLT stylesheet or input document containing a specially formed URL to an application using the vulnerable libxslt; the check functions return -1 yet the URL is still fetched, bypassing intended access controls and allowing arbitrary reads or writes that can lead to full system compromise.

How to fix it

Update libxslt to the commit e03553605b45c88f0b4b2980adfbbb8f6fca2fd6 or later; rebuild and redeploy all dependent applications; where immediate update is impossible, restrict untrusted XSLT processing and apply network-level controls on outbound fetches during transformation.

How to confirm the fix worked

Confirm the installed libxslt source or binary matches or exceeds commit e03553605b45c88f0b4b2980adfbbb8f6fca2fd6; recompile test cases that previously exercised xsltCheckRead on crafted URLs and verify they now correctly deny access; scan dependency manifests for the updated library version.

Typical attack path

  1. Identify an application processing untrusted XSLT or XML inputs with libxslt <= 1.1.33
  2. Craft a stylesheet containing a URL that triggers xsltCheckRead to erroneously return -1 while remaining loadable
  3. Deliver the malicious stylesheet or input to the target application
  4. Trigger stylesheet processing to bypass checks and access restricted resources
  5. Escalate obtained access to read sensitive data or execute further attacks

How to detect it

Review application logs for XSLT transformation activity involving external or unusual URLs; examine process execution and file access around libxslt usage for unexpected resource loads; correlate with web server or application error logs showing malformed URL handling.

What your security team should do

  • Prioritize upgrade of libxslt across all environments given the high CVSS and multi-year exposure window
  • Inventory applications that invoke XSLT processing and schedule emergency patching
  • Implement compensating controls such as input sanitization and outbound network restrictions until patches are applied
  • Monitor EPSS and threat intelligence feeds for any late-stage exploit emergence

The record

libxslt through 1.1.33 allows bypass of a protection mechanism because callers of xsltCheckRead and xsltCheckWrite permit access even upon receiving a -1 error code. xsltCheckRead can return -1 for a crafted URL that is not actually invalid and is subsequently loaded.

Affected packages

Ecosystem Package Introduced Fixed
RubyGems nokogiri 0 1.10.3
Alpine:v3.10 libxslt 0 1.1.33-r1
Alpine:v3.11 libxslt 0 1.1.33-r1
Alpine:v3.12 libxslt 0 1.1.33-r1
Alpine:v3.13 libxslt 0 1.1.33-r1
Alpine:v3.14 libxslt 0 1.1.33-r1
Alpine:v3.15 libxslt 0 1.1.33-r1
Alpine:v3.16 libxslt 0 1.1.33-r1
Alpine:v3.17 libxslt 0 1.1.33-r1
Alpine:v3.18 libxslt 0 1.1.33-r1
Alpine:v3.19 libxslt 0 1.1.33-r1
Alpine:v3.20 libxslt 0 1.1.33-r1
Alpine:v3.21 libxslt 0 1.1.33-r1
Alpine:v3.22 libxslt 0 1.1.33-r1
Alpine:v3.6 libxslt 0 1.1.29-r4
Alpine:v3.7 libxslt 0 1.1.31-r1
Alpine:v3.8 libxslt 0 1.1.33-r1
Alpine:v3.9 libxslt 0 1.1.33-r1
Debian:11 libxslt 0 1.1.32-2.1
Debian:12 libxslt 0 1.1.32-2.1
Debian:13 libxslt 0 1.1.32-2.1
Debian:8 libxslt 0 1.1.28-2+deb8u4
Mageia:6 libxslt 0 1.1.29-6.1.mga6
Red Hat:enterprise_linux:7::client libxslt 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::client libxslt-debuginfo 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::client libxslt-devel 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::client libxslt-python 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::computenode libxslt 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::computenode libxslt-debuginfo 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::computenode libxslt-devel 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::computenode libxslt-python 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::server libxslt 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::server libxslt-debuginfo 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::server libxslt-devel 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::server libxslt-python 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::workstation libxslt 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::workstation libxslt-debuginfo 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::workstation libxslt-devel 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:7::workstation libxslt-python 0 0:1.1.28-6.el7
Red Hat:enterprise_linux:8::appstream libxslt 0 0:1.1.32-5.el8
Red Hat:enterprise_linux:8::appstream libxslt-debuginfo 0 0:1.1.32-5.el8
Red Hat:enterprise_linux:8::appstream libxslt-debugsource 0 0:1.1.32-5.el8
Red Hat:enterprise_linux:8::appstream libxslt-devel 0 0:1.1.32-5.el8
Red Hat:enterprise_linux:8::baseos libxslt 0 0:1.1.32-5.el8
Red Hat:enterprise_linux:8::baseos libxslt-debuginfo 0 0:1.1.32-5.el8
Red Hat:enterprise_linux:8::baseos libxslt-debugsource 0 0:1.1.32-5.el8
Red Hat:enterprise_linux:8::baseos libxslt-devel 0 0:1.1.32-5.el8
SUSE:Linux Enterprise Desktop 12 SP3 libxslt 0 1.1.28-17.3.1
SUSE:Linux Enterprise Desktop 12 SP4 libxslt 0 1.1.28-17.3.1
SUSE:Linux Enterprise Module for Basesystem 15 libxslt 0 1.1.32-3.3.1
SUSE:Linux Enterprise Module for Basesystem 15 SP1 libxslt 0 1.1.32-3.3.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP1 rmt-server 0 2.3.1-3.3.3
SUSE:Linux Enterprise Module for Server Applications 15 rmt-server 0 2.1.4-3.17.1
SUSE:Linux Enterprise Module for Server Applications 15 SP1 rmt-server 0 2.3.1-3.3.3
SUSE:Linux Enterprise Server 12 SP3 libxslt 0 1.1.28-17.3.1
SUSE:Linux Enterprise Server 12 SP4 libxslt 0 1.1.28-17.3.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP3 libxslt 0 1.1.28-17.3.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP4 libxslt 0 1.1.28-17.3.1
SUSE:Linux Enterprise Software Development Kit 12 SP3 libxslt 0 1.1.28-17.3.1
SUSE:Linux Enterprise Software Development Kit 12 SP4 libxslt 0 1.1.28-17.3.1
Ubuntu:14.04:LTS libxslt 0 1.1.28-2ubuntu0.2
Ubuntu:16.04:LTS libxslt 0 1.1.28-2.1ubuntu0.2
Ubuntu:18.04:LTS libxslt 0 1.1.29-5ubuntu0.1
openSUSE:Leap 15.0 libxslt 0 1.1.32-lp150.2.3.1
openSUSE:Leap 15.0 libxslt-python 0 1.1.32-lp150.2.3.1
openSUSE:Leap 15.0 rmt-server 0 2.1.4-lp150.2.16.1
openSUSE:Leap 15.1 libxslt 0 1.1.32-lp151.3.3.1
openSUSE:Leap 15.1 libxslt-python 0 1.1.32-lp151.3.3.1
openSUSE:Leap 15.1 rmt-server 0 2.3.1-lp151.2.3.1
openSUSE:Tumbleweed libxslt 0 1.1.34-3.2
openSUSE:Tumbleweed rmt-server 0 2.6.13-1.1
openSUSE:Tumbleweed ruby3.2-rubygem-nokogiri 0 1.13.9-1.7
openSUSE:Tumbleweed rubygem-nokogiri 0 1.13.3-1.1
openSUSE:Tumbleweed rubygem-nokogiri 0 1.15.5-1.5
openSUSE:Tumbleweed rubygem-nokogiri 0 1.18.2-1.1
openSUSE:Tumbleweed rubygem-nokogiri 0 1.18.9-1.4

Related vulnerabilities