CVE-2015-7995
NoneCVSS
—
EPSS
4.2%
Published
Nov 17, 2015
CISA due date
—
Cloudanix analysis
A flaw in software that reads special XML files can let a remote attacker crash the program by sending a specially made file.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The xsltStylePreCompute function in preproc.c fails to verify that the parent node is an element node before processing, enabling type confusion that crashes the parser when a crafted XML input is supplied.
Why it matters to the business
Systems that process untrusted XML via affected libxslt-dependent components can be remotely crashed, causing service outages and requiring restarts on legacy or unpatched installations.
How an attack unfolds
An attacker creates an XML document that exercises the missing parent-node check in xsltStylePreCompute, then supplies the file to any application using the vulnerable libxslt code path; the type confusion immediately triggers a denial-of-service crash.
How to fix it
Upgrade flashplugin-nonfree on Ubuntu 14.04 LTS to version 25.0.0.171ubuntu0.14.04.1 or newer; apply any subsequent libxslt updates that correct the preproc.c check.
How to confirm the fix worked
Confirm the installed package version is at or above the listed fixed release; reprocess known-good and crafted test XML files to verify absence of crashes.
Typical attack path
- Craft malicious XML that triggers non-element parent in xsltStylePreCompute
- Deliver the XML through any input channel accepted by the vulnerable application
- Trigger XSLT preprocessing
- Induce crash via type confusion
How to detect it
Review application and system logs for sudden crashes or segmentation faults during XML or XSLT processing; correlate with inbound XML payloads from untrusted origins.
What your security team should do
- Apply the specified package update on all affected Ubuntu 14.04 systems
- Disable XML/XSLT processing from untrusted sources until patched
- Monitor application crash logs for repeated libxslt failures
The record
The xsltStylePreCompute function in preproc.c in libxslt 1.1.28 does not check if the parent node is an element, which allows attackers to cause a denial of service via a crafted XML file, related to a "type confusion" issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | libxslt | 0 | 1.1.28-2.1 |
| Debian:12 | libxslt | 0 | 1.1.28-2.1 |
| Debian:13 | libxslt | 0 | 1.1.28-2.1 |
| Debian:7 | libxslt | 0 | 1.1.26-14.1+deb7u1 |
| Debian:8 | libxslt | 0 | 1.1.28-2+deb8u1 |
| Mageia:5 | libxslt | 0 | 1.1.28-8.1.mga5 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libxslt | 0 | 1.1.28-16.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libxslt | 0 | 1.1.28-16.1 |
| SUSE:Linux Enterprise Server 11 SP4 | libxslt | 0 | 1.1.24-19.33.1 |
| SUSE:Linux Enterprise Server 12 SP1 | libxslt | 0 | 1.1.28-16.1 |
| SUSE:Linux Enterprise Server 12 SP2 | libxslt | 0 | 1.1.28-16.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libxslt | 0 | 1.1.28-16.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | libxslt | 0 | 1.1.24-19.33.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libxslt | 0 | 1.1.28-16.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libxslt | 0 | 1.1.28-16.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | libxslt | 0 | 1.1.24-19.33.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | libxslt-python | 0 | 1.1.24-19.33.3 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libxslt | 0 | 1.1.28-16.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libxslt | 0 | 1.1.28-16.1 |
| Ubuntu:14.04:LTS | libxslt | 0 | 1.1.28-2ubuntu0.1 |
| Ubuntu:16.04:LTS | libxslt | 0 | 1.1.28-2.1 |
| Ubuntu:16.04:LTS | libxslt | 0 | 1.1.28-2.1ubuntu0.1 |
| openSUSE:Tumbleweed | libxslt | 0 | 1.1.29-1.3 |
| 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.6.8.1-1.3 |
| 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
- 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-2008-2935 Multiple heap-based buffer overflows in the rc4 (1) encryption (aka… Also affects libxslt
- CVE-2008-1767 Buffer overflow in pattern.c in libxslt before 1.1.24 allows context-dependent attackers… Also affects libxslt
- CVE-2022-23437 There's a vulnerability within the Apache Xerces Java (XercesJ) XML parser when handling… Also affects ruby3.2-rubygem-nokogiri
- CVE-2015-7499 Heap-based buffer overflow in the xmlGROW function in parser.c in libxml2 before 2.9.3… Also affects ruby3.2-rubygem-nokogiri
- CVE-2015-5312 The xmlStringLenDecodeEntities function in parser.c in libxml2 before 2.9.3 does not… Also affects ruby3.2-rubygem-nokogiri