CVE-2014-0191
NoneCVSS
—
EPSS
8.1%
Published
Jan 21, 2015
CISA due date
—
Cloudanix analysis
A flaw in how certain software reads XML files lets attackers send specially made documents that can make the system run out of resources and stop working.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- XXE
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The xmlParserHandlePEReference function in libxml2 loads external parameter entities irrespective of entity substitution or validation settings, enabling remote attackers to trigger unbounded resource consumption through crafted XML documents.
Why it matters to the business
Attackers can render affected services unavailable by sending specially crafted XML, causing operational downtime and potential loss of availability for dependent applications.
How an attack unfolds
An attacker crafts an XML document containing external parameter entity references and sends it to an endpoint that processes XML using the vulnerable libxml2 parser; the parser resolves the external entities, exhausting server resources and resulting in denial of service.
How to fix it
Upgrade libxml2 to version 2.9.2 or later; where direct upgrade is not feasible, apply vendor patches for Oracle Fusion Middleware or implement input validation to reject external entity references in XML processing.
How to confirm the fix worked
Confirm libxml2 version is 2.9.2 or newer via package inspection or build logs; test by submitting XML containing external parameter entities and verifying that resolution is blocked and no resource exhaustion occurs.
Typical attack path
- Identify an XML-processing endpoint in the affected product
- Craft an XML payload containing external parameter entity references
- Transmit the payload via HTTP or other supported protocol
- Observe resource exhaustion on the target server
How to detect it
Review web server and application logs for unusually large or malformed XML payloads; correlate with spikes in CPU or memory usage on XML-processing components.
What your security team should do
- Prioritize patching libxml2 to 2.9.2+ across all affected Oracle Fusion Middleware installations
- Implement XML parser hardening to disable external entity resolution as a compensating control
- Monitor for availability degradation on XML-handling services
The record
The xmlParserHandlePEReference function in parser.c in libxml2 before 2.9.2, as used in Web Listener in Oracle HTTP Server in Oracle Fusion Middleware 11.1.1.7.0, 12.1.2.0, and 12.1.3.0 and other products, loads external parameter entities regardless of whether entity substitution or validation is enabled, which allows remote attackers to cause a denial of service (resource consumption) via a crafted XML document.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | libxml2 | 0 | 2.9.1+dfsg1-4 |
| Debian:12 | libxml2 | 0 | 2.9.1+dfsg1-4 |
| Debian:13 | libxml2 | 0 | 2.9.1+dfsg1-4 |
| Debian:6.0 | libxml2 | 0 | 2.7.8.dfsg-2+squeeze11 |
| Debian:7 | libxml2 | 0 | 2.8.0+dfsg1-7+wheezy3 |
| Mageia:3 | libxml2 | 0 | 2.9.0-5.3.mga3 |
| Mageia:4 | libxml2 | 0 | 2.9.1-2.1.mga4 |
| Red Hat:enterprise_linux:6::client | libxml2 | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::client | libxml2-debuginfo | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::client | libxml2-devel | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::client | libxml2-python | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::client | libxml2-static | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::computenode | libxml2 | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::computenode | libxml2-debuginfo | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::computenode | libxml2-devel | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::computenode | libxml2-python | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::computenode | libxml2-static | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::server | libxml2 | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::server | libxml2-debuginfo | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::server | libxml2-devel | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::server | libxml2-python | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::server | libxml2-static | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::workstation | libxml2 | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::workstation | libxml2-debuginfo | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::workstation | libxml2-devel | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::workstation | libxml2-python | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:6::workstation | libxml2-static | 0 | 0:2.7.6-14.el6_5.1 |
| Red Hat:enterprise_linux:7::client | libxml2 | 0 | 0:2.9.1-5.el7_1.2 |
| Red Hat:enterprise_linux:7::client | libxml2-debuginfo | 0 | 0:2.9.1-5.el7_1.2 |
| Red Hat:enterprise_linux:7::client | libxml2-devel | 0 | 0:2.9.1-5.el7_1.2 |
| Red Hat:enterprise_linux:7::client | libxml2-python | 0 | 0:2.9.1-5.el7_1.2 |
| Red Hat:enterprise_linux:7::client | libxml2-static | 0 | 0:2.9.1-5.el7_1.2 |
| Red Hat:enterprise_linux:7::computenode | libxml2 | 0 | 0:2.9.1-5.el7_1.2 |
| Red Hat:enterprise_linux:7::computenode | libxml2-debuginfo | 0 | 0:2.9.1-5.el7_1.2 |
| Red Hat:enterprise_linux:7::computenode | libxml2-devel | 0 | 0:2.9.1-5.el7_1.2 |
| Red Hat:enterprise_linux:7::computenode | libxml2-python | 0 | 0:2.9.1-5.el7_1.2 |
| Red Hat:enterprise_linux:7::computenode | libxml2-static | 0 | 0:2.9.1-5.el7_1.2 |
| Red Hat:enterprise_linux:7::server | libxml2 | 0 | 0:2.9.1-5.ael7b_1.2 |
| Red Hat:enterprise_linux:7::server | libxml2-debuginfo | 0 | 0:2.9.1-5.ael7b_1.2 |
| Red Hat:enterprise_linux:7::server | libxml2-devel | 0 | 0:2.9.1-5.ael7b_1.2 |
| Red Hat:enterprise_linux:7::server | libxml2-python | 0 | 0:2.9.1-5.ael7b_1.2 |
| Red Hat:enterprise_linux:7::server | libxml2-static | 0 | 0:2.9.1-5.ael7b_1.2 |
| Red Hat:enterprise_linux:7::workstation | libxml2 | 0 | 0:2.9.1-5.el7_1.2 |
| Red Hat:enterprise_linux:7::workstation | libxml2-debuginfo | 0 | 0:2.9.1-5.el7_1.2 |
| Red Hat:enterprise_linux:7::workstation | libxml2-devel | 0 | 0:2.9.1-5.el7_1.2 |
| Red Hat:enterprise_linux:7::workstation | libxml2-python | 0 | 0:2.9.1-5.el7_1.2 |
| Red Hat:enterprise_linux:7::workstation | libxml2-static | 0 | 0:2.9.1-5.el7_1.2 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libxml2 | 0 | 2.9.1-26.12.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | python-libxml2 | 0 | 2.9.1-26.12.1 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | libxml2 | 0 | 2.7.6-0.77.36.1 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | libxml2-python | 0 | 2.7.6-0.77.36.1 |
| SUSE:Linux Enterprise Server 11 SP4 | libxml2 | 0 | 2.7.6-0.47.1 |
| SUSE:Linux Enterprise Server 11 SP4 | libxml2-python | 0 | 2.7.6-0.47.3 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | libxml2 | 0 | 2.7.6-0.77.36.1 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | libxml2-python | 0 | 2.7.6-0.77.36.1 |
| SUSE:Linux Enterprise Server 12 SP1 | libxml2 | 0 | 2.9.1-26.12.1 |
| SUSE:Linux Enterprise Server 12 SP1 | python-libxml2 | 0 | 2.9.1-26.12.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | libxml2 | 0 | 2.7.6-0.47.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | libxml2-python | 0 | 2.7.6-0.47.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libxml2 | 0 | 2.9.1-26.12.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | python-libxml2 | 0 | 2.9.1-26.12.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | libxml2 | 0 | 2.7.6-0.47.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libxml2 | 0 | 2.9.1-26.12.1 |
| Ubuntu:14.04:LTS | libxml2 | 0 | 2.9.1+dfsg1-3ubuntu4.1 |
| openSUSE:Tumbleweed | libxml2 | 0 | 2.9.4-1.22 |
| openSUSE:Tumbleweed | ruby3.2-rubygem-nokogiri | 0 | 1.13.9-1.7 |
| openSUSE:Tumbleweed | rubygem-nokogiri | 0 | 1.6.8.1-1.3 |
| 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
- 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-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