CVE-2017-12621 in Xercesinfo

Summary

by MITRE

During Jelly (xml) file parsing with Apache Xerces, if a custom doctype entity is declared with a "SYSTEM" entity with a URL and that entity is used in the body of the Jelly file, during parser instantiation the parser will attempt to connect to said URL. This could lead to XML External Entity (XXE) attacks in Apache Commons Jelly before 1.0.1.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Analysis

by VulDB Data Team • 01/14/2021

The vulnerability CVE-2017-12621 represents a critical XML External Entity processing flaw within Apache Commons Jelly version 1.0 and earlier. This issue stems from the improper handling of custom doctype declarations during XML parsing operations, specifically when SYSTEM entities are referenced within Jelly files. The vulnerability manifests when a Jelly file contains a custom doctype declaration that references an external resource through a SYSTEM entity, creating a potential attack vector for XML External Entity exploitation.

The technical implementation of this vulnerability occurs during the parser instantiation phase of Jelly file processing. When Apache Xerces encounters a custom doctype entity declaration with a SYSTEM attribute containing a URL, the parser automatically attempts to establish a network connection to resolve that external reference. This behavior bypasses normal security controls and allows malicious actors to trigger outbound connections from systems processing affected Jelly files. The flaw exists because the XML parser does not properly validate or restrict external entity resolution, enabling arbitrary network access during document parsing operations.

This vulnerability directly maps to CWE-611, which defines Improper Restriction of XML External Entity Reference as a critical weakness in software systems. The operational impact of CVE-2017-12621 extends beyond simple information disclosure, as it enables several attack vectors including server-side request forgery, internal network reconnaissance, and potential data exfiltration. Attackers can leverage this vulnerability to force targeted systems to connect to malicious external servers, potentially revealing internal network topology or facilitating further attacks through the exploitation of other vulnerabilities.

The attack surface for this vulnerability is particularly concerning given the widespread use of Apache Commons Jelly in enterprise applications and web frameworks. Systems processing untrusted Jelly files become vulnerable to XXE attacks, where malicious entities can cause the parser to retrieve content from internal resources or external malicious servers. This aligns with ATT&CK technique T1068, which describes the exploitation of remote code execution vulnerabilities through XML processing. The vulnerability can be exploited to perform various malicious activities including internal port scanning, file retrieval from the local system, and potential data exfiltration through the external entity references.

Organizations should immediately upgrade to Apache Commons Jelly version 1.0.1 or later to remediate this vulnerability. Additionally, administrators should implement strict XML parser configurations that disable external entity resolution entirely, particularly when processing untrusted input. Network monitoring should be enhanced to detect unusual outbound connections from systems processing Jelly files, and input validation should be strengthened to prevent the injection of malicious doctype declarations. The vulnerability demonstrates the critical importance of proper XML processing security controls and highlights the need for comprehensive security testing of XML parsing components in enterprise applications.

Reservation

08/07/2017

Disclosure

09/27/2017

Moderation

accepted

EPSS

0.08130

KEV

no

Activities

very low

Sources

Might our Artificial Intelligence support you?

Check our Alexa App!