CVE-2017-0663
High · 7.8CVSS
7.8
EPSS
2.3%
Published
Jun 14, 2017
CISA due date
—
Cloudanix analysis
A flaw in a library used by many apps could let attackers run their own code on phones simply by getting users to open a specially made file.
- 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
Memory corruption in libxml2 XML parsing allows arbitrary code execution within the context of an unprivileged process when a specially crafted file is processed.
Why it matters to the business
Attackers can execute code on affected devices by tricking users into opening malicious files, risking data exposure or further compromise across widely deployed mobile platforms.
How an attack unfolds
An attacker creates a malicious XML file that triggers the memory corruption during parsing; the file is delivered via common channels such as downloads or messaging, and execution occurs when a vulnerable application processes the file.
How to fix it
Apply the latest Android security updates that include fixes for the libxml2 component; verify devices are no longer running the listed vulnerable versions.
How to confirm the fix worked
Confirm Android builds incorporate the security patch addressing the libxml2 issue and test that crafted XML files no longer trigger unexpected code paths or crashes.
Typical attack path
- Craft malicious XML file that exploits libxml2 memory corruption
- Distribute file through user-accessible channels
- Victim opens file in an affected application
- Arbitrary code executes in unprivileged process context
How to detect it
Examine system and application logs for libxml2 parsing anomalies or crashes around the time of suspicious file access; correlate with process execution events following XML file handling.
What your security team should do
- Expedite deployment of Android security patches to all managed devices
- Restrict or monitor handling of untrusted XML files in enterprise applications
- Review application dependencies on libxml2 and prioritize updates
The record
A remote code execution vulnerability in libxml2 could enable an attacker using a specially crafted file to execute arbitrary code within the context of an unprivileged process. This issue is rated as High due to the possibility of remote code execution in an application that uses this library. Product: Android. Versions: 4.4.4, 5.0.2, 5.1.1, 6.0, 6.0.1, 7.0, 7.1.1, 7.1.2. Android ID: A-37104170.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | libxml2 | 0 | 2.9.4+dfsg1-3.1 |
| Debian:12 | libxml2 | 0 | 2.9.4+dfsg1-3.1 |
| Debian:13 | libxml2 | 0 | 2.9.4+dfsg1-3.1 |
| Debian:7 | libxml2 | 0 | 2.8.0+dfsg1-7+wheezy9 |
| Debian:8 | libxml2 | 0 | 2.9.1+dfsg1-5+deb8u5 |
| Debian:9 | libxml2 | 0 | 2.9.4+dfsg1-2.2+deb9u1 |
| Mageia:5 | libxml2 | 0 | 2.9.7-1.mga5 |
| Mageia:5 | perl-XML-LibXML | 0 | 2.12.100-1.2.mga5 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libxml2 | 0 | 2.9.4-42.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | python-libxml2 | 0 | 2.9.4-42.1 |
| SUSE:Linux Enterprise Server 11 SP4 | libxml2 | 0 | 2.7.6-0.76.1 |
| SUSE:Linux Enterprise Server 11 SP4 | libxml2-python | 0 | 2.7.6-0.76.4 |
| SUSE:Linux Enterprise Server 12 SP2 | libxml2 | 0 | 2.9.4-42.1 |
| SUSE:Linux Enterprise Server 12 SP2 | python-libxml2 | 0 | 2.9.4-42.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libxml2 | 0 | 2.9.4-42.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | python-libxml2 | 0 | 2.9.4-42.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | libxml2 | 0 | 2.7.6-0.76.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | libxml2-python | 0 | 2.7.6-0.76.4 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libxml2 | 0 | 2.9.4-42.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | python-libxml2 | 0 | 2.9.4-42.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | libxml2 | 0 | 2.7.6-0.76.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libxml2 | 0 | 2.9.4-42.1 |
| Ubuntu:14.04:LTS | libxml2 | 0 | 2.9.1+dfsg1-3ubuntu4.10 |
| Ubuntu:16.04:LTS | android | 0 | No fix |
| Ubuntu:16.04:LTS | libxml2 | 0 | 2.9.3+dfsg1-1ubuntu0.3 |
| Ubuntu:Pro:16.04:LTS | android | 0 | No fix |
| openSUSE:Tumbleweed | libxml2 | 0 | 2.9.12-1.2 |
Related vulnerabilities
- CVE-2017-16932 parser.c in libxml2 before 2.9.5 does not prevent infinite recursion in parameter… Also affects libxml2
- CVE-2017-8872 The htmlParseTryOrFinish function in HTMLparser.c in libxml2 2.9.4 allows attackers to… Also affects libxml2
- CVE-2016-9318 libxml2 2.9.4 and earlier, as used in XMLSec 1.2.23 and earlier and other products, does… Also affects libxml2
- CVE-2016-4448 Format string vulnerability in libxml2 before 2.9.4 allows attackers to have unspecified… Also affects libxml2
- CVE-2016-4447 The xmlParseElementDecl function in parser.c in libxml2 before 2.9.4 allows… Also affects libxml2
- CVE-2015-8806 dict.c in libxml2 allows remote attackers to cause a denial of service (heap-based buffer… Also affects libxml2
- CVE-2015-7499 Heap-based buffer overflow in the xmlGROW function in parser.c in libxml2 before 2.9.3… Also affects libxml2
- CVE-2015-5312 The xmlStringLenDecodeEntities function in parser.c in libxml2 before 2.9.3 does not… Also affects libxml2