CVE-2020-13576

9.8 CRITICAL

📋 TL;DR

A remote code execution vulnerability exists in the WS-Addressing plugin of Genivia gSOAP 2.8.107. Attackers can exploit this by sending a specially crafted SOAP request over HTTP, potentially gaining full control of affected systems. This affects any application or service using the vulnerable gSOAP library for SOAP web services.

💻 Affected Systems

Products:
  • Genivia gSOAP
Versions: Version 2.8.107 specifically
Operating Systems: All platforms running gSOAP
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems with WS-Addressing plugin enabled. Many applications embed gSOAP as a library, so check all software using gSOAP.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise allowing attackers to execute arbitrary code with the privileges of the gSOAP process, potentially leading to data theft, lateral movement, or ransomware deployment.

🟠

Likely Case

Remote code execution leading to service disruption, data exfiltration, or installation of backdoors on vulnerable systems.

🟢

If Mitigated

Limited impact if proper network segmentation, least privilege, and monitoring are in place, though exploitation could still cause service disruption.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires sending a crafted SOAP request to a vulnerable endpoint. The Talos report provides technical details that could be used to create exploits.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: gSOAP 2.8.108 or later

Vendor Advisory: https://www.genivia.com/advisory.html

Restart Required: Yes

Instructions:

1. Upgrade gSOAP to version 2.8.108 or later. 2. Recompile any applications using gSOAP with the updated library. 3. Restart affected services. 4. For embedded systems, update the gSOAP library in your codebase and redeploy.

🔧 Temporary Workarounds

Disable WS-Addressing plugin

all

If WS-Addressing functionality is not required, disable the plugin to prevent exploitation.

Recompile gSOAP without WS-Addressing support: ./configure --disable-wsa
Modify application code to not use WS-Addressing features

Network filtering

linux

Block or filter SOAP requests containing WS-Addressing headers at network boundaries.

iptables rules or WAF rules to block suspicious SOAP requests

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate vulnerable systems from untrusted networks.
  • Deploy web application firewall (WAF) rules to detect and block malicious SOAP requests targeting WS-Addressing.

🔍 How to Verify

Check if Vulnerable:

Check gSOAP version: soapcpp2 -v 2>&1 | grep version. If output shows 2.8.107, system is vulnerable. Also check if applications link against vulnerable gSOAP library.

Check Version:

soapcpp2 -v 2>&1 | grep version || ldd /path/to/application | grep libgsoap

Verify Fix Applied:

Verify gSOAP version is 2.8.108 or later: soapcpp2 -v 2>&1 | grep version. Test SOAP services with WS-Addressing requests to ensure they function without crashing.

📡 Detection & Monitoring

Log Indicators:

  • Unexpected process crashes of gSOAP-based services
  • Unusual SOAP request patterns with WS-Addressing headers
  • Failed authentication attempts followed by SOAP requests

Network Indicators:

  • HTTP POST requests with SOAP envelopes containing malformed WS-Addressing headers
  • Unusual traffic to SOAP service ports (typically 80, 443, or custom ports)

SIEM Query:

source="*web.log*" AND ("SOAP" OR "WS-Addressing") AND ("malformed" OR "crash" OR "exception")

🔗 References

📤 Share & Export