CVE-2016-4448
Critical · 9.8CVSS
9.8
EPSS
7.0%
Published
Jun 9, 2016
CISA due date
—
Cloudanix analysis
A bug in document handling software could let attackers seize control of computers by sending specially crafted files.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Full Compromise
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Format string vulnerability allowing injection of format specifiers into XML processing that can result in memory corruption or arbitrary code execution with no authentication required.
Why it matters to the business
Potential full system compromise enabling data theft or ransomware deployment on systems running affected Ghostscript packages; low urgency due to age and lack of known exploitation campaigns despite high severity.
How an attack unfolds
An attacker crafts malicious input containing format string specifiers and supplies it to the vulnerable XML parsing component used by Ghostscript, triggering uncontrolled format string processing that corrupts memory and allows code execution.
How to fix it
Upgrade Ghostscript on Debian 10/11/12/13 to version 9.22~dfsg-1 or later; apply vendor patches for any dependent libxml2 components.
How to confirm the fix worked
Verify installed Ghostscript package versions match or exceed the fixed releases; test parsing of sample inputs containing format specifiers in a controlled environment.
Typical attack path
- Scan for systems exposing Ghostscript or dependent services to untrusted input
- Craft XML document embedding format string specifiers
- Deliver the document via network vectors such as file upload or print job
- Trigger parsing to achieve remote code execution
- Establish persistence or exfiltrate data
How to detect it
Inspect application and system logs for abnormal XML parsing errors or crashes; monitor process execution for unexpected child processes spawned during document handling.
What your security team should do
- Prioritize patching all listed Debian Ghostscript packages to 9.22~dfsg-1
- Review exposure of any services that invoke Ghostscript on untrusted documents
- Implement input sanitization for XML content where upgrades are delayed
The record
Format string vulnerability in libxml2 before 2.9.4 allows attackers to have unspecified impact via format string specifiers in unknown vectors.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | libxml2 | 0 | 2.9.4+dfsg1-1 |
| Debian:12 | libxml2 | 0 | 2.9.4+dfsg1-1 |
| Debian:13 | libxml2 | 0 | 2.9.4+dfsg1-1 |
| Debian:14 | libxml2 | 0 | 2.9.4+dfsg1-1 |
| Mageia:5 | libxml2 | 0 | 2.9.4-1.1.mga5 |
| Red Hat:enterprise_linux:6::client | libxml2 | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::client | libxml2-debuginfo | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::client | libxml2-devel | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::client | libxml2-python | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::client | libxml2-static | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::computenode | libxml2 | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::computenode | libxml2-debuginfo | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::computenode | libxml2-devel | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::computenode | libxml2-python | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::computenode | libxml2-static | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::server | libxml2 | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::server | libxml2-debuginfo | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::server | libxml2-devel | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::server | libxml2-python | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::server | libxml2-static | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::workstation | libxml2 | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::workstation | libxml2-debuginfo | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::workstation | libxml2-devel | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::workstation | libxml2-python | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:6::workstation | libxml2-static | 0 | 0:2.7.6-21.el6_8.1 |
| Red Hat:enterprise_linux:7::client | libxml2 | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::client | libxml2-debuginfo | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::client | libxml2-devel | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::client | libxml2-python | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::client | libxml2-static | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::computenode | libxml2 | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::computenode | libxml2-debuginfo | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::computenode | libxml2-devel | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::computenode | libxml2-python | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::computenode | libxml2-static | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::server | libxml2 | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::server | libxml2-debuginfo | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::server | libxml2-devel | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::server | libxml2-python | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::server | libxml2-static | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::workstation | libxml2 | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::workstation | libxml2-debuginfo | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::workstation | libxml2-devel | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::workstation | libxml2-python | 0 | 0:2.9.1-6.el7_2.3 |
| Red Hat:enterprise_linux:7::workstation | libxml2-static | 0 | 0:2.9.1-6.el7_2.3 |
| 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.9 |
| Ubuntu:16.04:LTS | libxml2 | 0 | 2.9.3+dfsg1-1ubuntu0.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-0663 A remote code execution vulnerability in libxml2 could enable an attacker using a… 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-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