CVE-2017-5029
High · 8.8CVSS
8.8
EPSS
2.2%
Published
Apr 24, 2017
CISA due date
—
Cloudanix analysis
A programming mistake in a web-page processing library could let attackers take control of a computer by sending a specially crafted web page.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Integer overflow in xsltAddTextString during size calculation in libxslt 1.1.29 allows out-of-bounds memory write when processing crafted XSLT in HTML.
Why it matters to the business
Remote attackers could achieve code execution or denial of service in applications using the affected dagger packages, though the vulnerability is over seven years old with minimal modern exposure.
How an attack unfolds
An attacker sends a victim a crafted HTML page containing malicious XSLT; when the browser renders it, the missing overflow check in libxslt's transform logic corrupts memory and can lead to arbitrary code execution within the renderer process.
How to fix it
Upgrade dagger (Chainguard) to 0.10.1-r1 or later and dagger (Wolfi) to 0.10.1-r1 or later to obtain the patched libxslt.
How to confirm the fix worked
Confirm installed package versions meet or exceed the fixed releases; re-test rendering of known trigger HTML after upgrade.
Typical attack path
- Craft malicious HTML containing XSLT that triggers integer overflow in xsltAddTextString
- Host the page on an attacker-controlled site or deliver via phishing
- Victim browser loads and processes the page using vulnerable libxslt
- Overflow during size calculation writes beyond allocated buffer
- Corrupted memory enables control-flow hijacking or crash
How to detect it
Review web server and browser process logs for crashes during XSLT handling; search historical telemetry for requests containing unusual XSLT patterns that match the 2017-era trigger.
What your security team should do
- Apply the specified package upgrades across all environments
- Audit dependency trees for any remaining direct use of libxslt 1.1.29
- Disable XSLT processing for untrusted content where feasible
The record
The xsltAddTextString function in transform.c in libxslt 1.1.29, as used in Blink in Google Chrome prior to 57.0.2987.98 for Mac, Windows, and Linux and 57.0.2987.108 for Android, lacked a check for integer overflow during a size calculation, which allowed a remote attacker to perform an out of bounds memory write via a crafted HTML page.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| RubyGems | nokogiri | 0 | 1.7.2 |
| Alpine:v3.10 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.11 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.12 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.13 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.14 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.15 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.16 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.17 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.18 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.19 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.2 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.20 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.21 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.22 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.3 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.4 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.5 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.6 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.7 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.8 | libxslt | 0 | 1.1.29-r1 |
| Alpine:v3.9 | libxslt | 0 | 1.1.29-r1 |
| Debian:11 | libxslt | 0 | 1.1.29-2.1 |
| Debian:12 | libxslt | 0 | 1.1.29-2.1 |
| Debian:13 | libxslt | 0 | 1.1.29-2.1 |
| Debian:7 | libxslt | 0 | 1.1.26-14.1+deb7u3 |
| Debian:8 | chromium-browser | 0 | 57.0.2987.98-1~deb8u1 |
| Mageia:5 | chromium-browser-stable | 0 | 57.0.2987.133-1.mga5 |
| Mageia:5 | libxslt | 0 | 1.1.29-1.2.mga5 |
| Red Hat:rhel_extras:6 | chromium-browser | 0 | 0:57.0.2987.98-1.el6 |
| Red Hat:rhel_extras:6 | chromium-browser-debuginfo | 0 | 0:57.0.2987.98-1.el6 |
| 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 |
| SUSE:Package Hub 12 SP2 | chromium | 0 | 57.0.2987.98-8.1 |
| Ubuntu:14.04:LTS | chromium-browser | 0 | 58.0.3029.81-0ubuntu0.14.04.1172 |
| Ubuntu:14.04:LTS | libxslt | 0 | 1.1.28-2ubuntu0.1 |
| Ubuntu:14.04:LTS | oxide-qt | 0 | 1.21.5-0ubuntu0.14.04.1 |
| Ubuntu:16.04:LTS | chromium-browser | 0 | 57.0.2987.98-0ubuntu0.16.04.1276 |
| Ubuntu:16.04:LTS | libxslt | 0 | 1.1.28-2.1ubuntu0.1 |
| Ubuntu:16.04:LTS | oxide-qt | 0 | 1.21.5-0ubuntu0.16.04.1 |
| openSUSE:Tumbleweed | libxslt | 0 | 1.1.34-3.2 |
| 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
- GHSA-vcc3-rw6f-jv97 Duplicate Advisory: Use-after-free in libxml2 via Nokogiri::XML::Reader Also affects nokogiri
- GHSA-pxvg-2qj5-37jq Nokogiri updates packaged libxml2 to v2.10.4 to resolve multiple CVEs Also affects nokogiri
- GHSA-2qc6-mcvw-92cw Update bundled libxml2 to v2.10.3 to resolve multiple CVEs Also affects nokogiri
- GHSA-cgx6-hpwq-fhv5 Integer Overflow or Wraparound in libxml2 affects Nokogiri Also affects nokogiri
- GHSA-gx8x-g87m-h5q6 Denial of Service (DoS) in Nokogiri on JRuby Also affects nokogiri
- GHSA-xxx9-3xcr-gjj3 XML Injection in Xerces Java affects Nokogiri Also affects nokogiri
- GHSA-v6gp-9mmm-c6p5 Out-of-bounds Write in zlib affects Nokogiri Also affects nokogiri
- GHSA-fq42-c5rg-92c2 Vulnerable dependencies in Nokogiri Also affects nokogiri