CVE-2015-8806
High · 7.5CVSS
7.5
EPSS
5.0%
Published
Apr 13, 2016
CISA due date
—
Cloudanix analysis
A flaw in a common library used to read web pages can let attackers send specially made documents that crash programs and disrupt services.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
A heap-based buffer over-read in libxml2's dict.c parser triggers an application crash when processing a crafted HTML document containing an unexpected character immediately after the "<!DOCTYPE html" substring.
Why it matters to the business
Systems relying on libxml2 for HTML parsing can experience repeated crashes leading to service outages and degraded availability for dependent applications.
How an attack unfolds
An attacker crafts an HTML document with an unexpected character right after the DOCTYPE declaration and delivers it to any application or service using the vulnerable libxml2 parser, causing the parser to read beyond allocated memory and terminate.
How to fix it
Upgrade libxml2 to a version containing the upstream fix for this parsing issue; apply vendor patches for affected distributions such as Ubuntu and Debian; rebuild or redeploy any statically linked applications.
How to confirm the fix worked
Test the updated library against the original proof-of-concept HTML document to confirm the parser no longer crashes; monitor application stability under load with similar malformed inputs.
Typical attack path
- Identify a target application or service that processes untrusted HTML using libxml2
- Craft a minimal HTML document containing an unexpected character immediately after "<!DOCTYPE html"
- Deliver the document via network request, file upload, or other input vector accepted by the target
- Trigger parsing of the malicious document to induce the buffer over-read and crash
How to detect it
Review application and system logs for unexpected crashes or segmentation faults occurring during HTML or XML parsing; correlate crash reports with libxml2 stack traces if available.
What your security team should do
- Prioritize patching libxml2 across all affected systems due to its widespread use in XML/HTML processing
- Inventory applications and libraries that depend on libxml2 to assess exposure scope
- Implement input validation or sandboxing around HTML parsers as a defense-in-depth measure until patches are applied
The record
dict.c in libxml2 allows remote attackers to cause a denial of service (heap-based buffer over-read and application crash) via an unexpected character immediately after the "<!DOCTYPE html" substring in a crafted HTML document.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| RubyGems | nokogiri | 1.6.0 | 1.6.8 |
| Debian:11 | libxml2 | 0 | 2.9.3+dfsg1-1.1 |
| Debian:12 | libxml2 | 0 | 2.9.3+dfsg1-1.1 |
| Debian:13 | libxml2 | 0 | 2.9.3+dfsg1-1.1 |
| Debian:7 | libxml2 | 0 | 2.8.0+dfsg1-7+wheezy6 |
| Debian:8 | libxml2 | 0 | 2.9.1+dfsg1-5+deb8u2 |
| Mageia:5 | libxml2 | 0 | 2.9.4-1.1.mga5 |
| SUSE:Linux Enterprise Desktop 12 | libxml2 | 0 | 2.9.1-24.1 |
| SUSE:Linux Enterprise Desktop 12 | python-libxml2 | 0 | 2.9.1-24.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libxml2 | 0 | 2.9.1-24.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | python-libxml2 | 0 | 2.9.1-24.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | libxml2 | 0 | 2.7.6-0.44.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | libxml2-python | 0 | 2.7.6-0.44.4 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | libxml2 | 0 | 2.7.6-0.44.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | libxml2-python | 0 | 2.7.6-0.44.4 |
| SUSE:Linux Enterprise Server 11 SP3-TERADATA | libxml2 | 0 | 2.7.6-0.44.1 |
| SUSE:Linux Enterprise Server 11 SP3-TERADATA | libxml2-python | 0 | 2.7.6-0.44.4 |
| SUSE:Linux Enterprise Server 11 SP4 | libxml2 | 0 | 2.7.6-0.44.1 |
| SUSE:Linux Enterprise Server 11 SP4 | libxml2-python | 0 | 2.7.6-0.44.4 |
| SUSE:Linux Enterprise Server 12 | libxml2 | 0 | 2.9.1-24.1 |
| SUSE:Linux Enterprise Server 12 | python-libxml2 | 0 | 2.9.1-24.1 |
| SUSE:Linux Enterprise Server 12 SP1 | libxml2 | 0 | 2.9.1-24.1 |
| SUSE:Linux Enterprise Server 12 SP1 | python-libxml2 | 0 | 2.9.1-24.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | libxml2 | 0 | 2.7.6-0.44.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | libxml2-python | 0 | 2.7.6-0.44.4 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | libxml2 | 0 | 2.9.1-24.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | python-libxml2 | 0 | 2.9.1-24.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libxml2 | 0 | 2.9.1-24.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | python-libxml2 | 0 | 2.9.1-24.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | libxml2 | 0 | 2.7.6-0.44.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | libxml2 | 0 | 2.9.1-24.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libxml2 | 0 | 2.9.1-24.1 |
| SUSE:Manager 2.1 | libxml2 | 0 | 2.7.6-0.44.1 |
| SUSE:Manager 2.1 | libxml2-python | 0 | 2.7.6-0.44.4 |
| SUSE:Manager Proxy 2.1 | libxml2 | 0 | 2.7.6-0.44.1 |
| SUSE:Manager Proxy 2.1 | libxml2-python | 0 | 2.7.6-0.44.4 |
| SUSE:OpenStack Cloud 5 | libxml2 | 0 | 2.7.6-0.44.1 |
| SUSE:OpenStack Cloud 5 | libxml2-python | 0 | 2.7.6-0.44.4 |
| Ubuntu:14.04:LTS | libxml2 | 0 | 2.9.1+dfsg1-3ubuntu4.8 |
| Ubuntu:16.04:LTS | libxml2 | 0 | 2.9.3+dfsg1-1ubuntu0.1 |
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