CVE-2020-10990

9.8 CRITICAL

📋 TL;DR

CVE-2020-10990 is an XML External Entity (XXE) vulnerability in Accenture Mercury's SimpleXmlParser component that allows attackers to read arbitrary files from the server filesystem or conduct server-side request forgery attacks. This affects all Mercury deployments using versions before 1.12.28. The vulnerability is particularly dangerous because it can be exploited remotely without authentication.

💻 Affected Systems

Products:
  • Accenture Mercury
Versions: All versions before 1.12.28
Operating Systems: All platforms running Mercury
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability exists in the SimpleXmlParser component used for XML processing. Any Mercury deployment processing XML input is affected.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise including sensitive file disclosure (passwords, configuration files), server-side request forgery to internal systems, and potential remote code execution through file inclusion.

🟠

Likely Case

Arbitrary file read from the server filesystem, potentially exposing sensitive configuration files, credentials, or application source code.

🟢

If Mitigated

Limited impact with proper network segmentation, file system permissions, and input validation controls in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

The vulnerability is in a widely used XML parsing component and can be exploited with standard XXE payloads. Public references and commit details are available.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.12.28 and later

Vendor Advisory: https://github.com/Accenture/mercury/commit/f647a01347485d2afe3a0b735eab3d0121d61f46

Restart Required: Yes

Instructions:

1. Update Mercury to version 1.12.28 or later. 2. Replace the vulnerable SimpleXmlParser.java component. 3. Restart the Mercury application server. 4. Verify the fix by checking the version and testing XML processing.

🔧 Temporary Workarounds

Disable XXE processing

all

Configure XML parsers to disable external entity processing

Set XML parser properties: FEATURE_SECURE_PROCESSING=true, DISALLOW_DOCTYPE_DECL=true

Input validation filtering

all

Filter or block XML input containing DOCTYPE declarations or external entity references

Implement input validation to reject XML with DOCTYPE or SYSTEM entities

🧯 If You Can't Patch

  • Implement network segmentation to isolate Mercury instances from sensitive internal systems
  • Deploy web application firewall (WAF) rules to block XXE payloads and monitor for exploitation attempts

🔍 How to Verify

Check if Vulnerable:

Check Mercury version: if version < 1.12.28, system is vulnerable. Test XML processing with XXE payloads.

Check Version:

Check Mercury application configuration or deployment manifest for version information

Verify Fix Applied:

Verify version is 1.12.28 or later. Test XML processing with XXE payloads to confirm they are rejected.

📡 Detection & Monitoring

Log Indicators:

  • XML parsing errors
  • File access attempts via XML parsing
  • Unusual file system access patterns

Network Indicators:

  • XML payloads containing DOCTYPE or SYSTEM entities
  • Outbound requests from server to internal systems triggered by XML input

SIEM Query:

source="mercury.log" AND ("DOCTYPE" OR "SYSTEM" OR "ENTITY")

🔗 References

📤 Share & Export