CVE-2019-10172

7.5 HIGH

📋 TL;DR

This vulnerability allows XML external entity (XXE) attacks in org.codehaus.jackson:jackson-mapper-asl libraries version 1.9.x. Attackers can exploit this to read arbitrary files, conduct server-side request forgery (SSRF), or cause denial of service. Systems using affected Jackson libraries for XML processing are vulnerable.

💻 Affected Systems

Products:
  • Apache Cassandra
  • Apache Hadoop
  • Any application using org.codehaus.jackson:jackson-mapper-asl
Versions: 1.9.x versions
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerable when processing untrusted XML data; affects different classes than CVE-2016-3720 but same vulnerability type

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution, complete system compromise, or sensitive data exfiltration via XXE attacks

🟠

Likely Case

Arbitrary file read, SSRF attacks, or denial of service through XML parsing

🟢

If Mitigated

Limited impact if XML parsing is disabled or input validation blocks malicious XML

🌐 Internet-Facing: HIGH if XML endpoints are exposed without proper input validation
🏢 Internal Only: MEDIUM if internal services process untrusted XML data

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

XXE vulnerabilities are well-understood with public exploit techniques; similar to CVE-2016-3720 exploitation patterns

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Upgrade to jackson-mapper-asl 1.9.13 or later

Vendor Advisory: https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2019-10172

Restart Required: Yes

Instructions:

1. Identify applications using vulnerable jackson-mapper-asl 1.9.x. 2. Update dependency to version 1.9.13+. 3. Restart affected services. 4. Test XML processing functionality.

🔧 Temporary Workarounds

Disable XXE processing

all

Configure XML parser to disable external entity resolution

Set XMLInputFactory properties: XMLInputFactory.setProperty("javax.xml.stream.isSupportingExternalEntities", false);
Set XMLInputFactory.setProperty("javax.xml.stream.isReplacingEntityReferences", false);

Input validation

all

Validate and sanitize XML input before processing

🧯 If You Can't Patch

  • Implement network segmentation to isolate vulnerable systems
  • Deploy web application firewall (WAF) with XXE protection rules

🔍 How to Verify

Check if Vulnerable:

Check application dependencies for org.codehaus.jackson:jackson-mapper-asl version 1.9.0 through 1.9.12

Check Version:

For Maven: mvn dependency:tree | grep jackson-mapper-asl; For Java: check MANIFEST.MF or pom.xml

Verify Fix Applied:

Verify jackson-mapper-asl version is 1.9.13 or higher in dependencies

📡 Detection & Monitoring

Log Indicators:

  • Unusual file access attempts via XML parsing
  • XML parsing errors with external entity references
  • Unexpected outbound network connections from XML processors

Network Indicators:

  • HTTP requests to internal resources from XML parsing services
  • Large XML payloads with entity declarations

SIEM Query:

source="application.log" AND ("XXE" OR "external entity" OR "DOCTYPE")

🔗 References

📤 Share & Export