CVE-2024-6893

7.5 HIGH

📋 TL;DR

This XXE vulnerability in soap_cgi.pyc allows unauthenticated attackers to read local files, perform SSRF attacks, and potentially cause denial of service by referencing external entities in SOAP requests. It affects systems using the vulnerable SOAP API handler without proper XML parsing restrictions.

💻 Affected Systems

Products:
  • Software using soap_cgi.pyc SOAP handler
Versions: All versions with vulnerable configuration
Operating Systems: Any OS running the vulnerable software
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists when XML external entity processing is enabled in the SOAP parser configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise via file disclosure of sensitive data (passwords, keys), SSRF to internal services, and resource exhaustion leading to denial of service.

🟠

Likely Case

Unauthenticated file disclosure of configuration files and SSRF attacks against internal network services accessible from the vulnerable server.

🟢

If Mitigated

Limited impact if external entity processing is disabled and network egress is restricted, though the vulnerability still exists.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires sending crafted SOAP requests with XXE payloads to the vulnerable endpoint.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not specified

Vendor Advisory: Not available

Restart Required: No

Instructions:

1. Disable XML external entity processing in the SOAP parser configuration
2. Apply input validation to reject SOAP requests containing external entity references
3. Update to a version with XXE protection if available from vendor

🔧 Temporary Workarounds

Disable XXE in SOAP parser

all

Configure the XML parser to disable external entity resolution

Modify soap_cgi.pyc or configuration to set: feature_external_ges = false
Set XML parser properties: FEATURE_SECURE_PROCESSING = true

Input validation filter

all

Block SOAP requests containing DOCTYPE or external entity declarations

Add WAF rule: deny if request contains '<!ENTITY' or 'SYSTEM' in XML body
Implement pre-processing filter to sanitize SOAP requests

🧯 If You Can't Patch

  • Implement network segmentation to restrict vulnerable system's access to internal resources
  • Deploy web application firewall with XXE detection rules

🔍 How to Verify

Check if Vulnerable:

Send a SOAP request with XXE payload to the endpoint and check if it processes external entities

Check Version:

Check the software version and configuration of soap_cgi.pyc handler

Verify Fix Applied:

Test with the same XXE payload and verify it's rejected or doesn't process external entities

📡 Detection & Monitoring

Log Indicators:

  • SOAP requests with unusual XML structures
  • Requests containing DOCTYPE declarations
  • File access attempts via XML entities
  • Outbound connections initiated by the SOAP handler

Network Indicators:

  • HTTP requests to the SOAP endpoint with XML containing SYSTEM or PUBLIC declarations
  • Unusual outbound connections from the web server

SIEM Query:

source="web_server" AND (request_uri="*soap*" OR request_uri="*cgi*" OR request_uri="*pyc*") AND (request_body CONTAINS "<!ENTITY" OR request_body CONTAINS "SYSTEM")

🔗 References

📤 Share & Export