CVE-2021-36163

9.8 CRITICAL

📋 TL;DR

Apache Dubbo's Hessian protocol implementation has a critical deserialization vulnerability that allows unauthenticated remote code execution. Attackers can exploit this by sending malicious POST requests to exposed generic services without needing valid service/method names. All Apache Dubbo deployments using Hessian protocol are affected.

💻 Affected Systems

Products:
  • Apache Dubbo
Versions: All versions before 2.7.13 and 2.6.10.1
Operating Systems: All operating systems running Apache Dubbo
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects deployments using Hessian protocol. The generic service is always exposed when Hessian is enabled.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise with full remote code execution, data exfiltration, and lateral movement within the network.

🟠

Likely Case

Remote code execution leading to data theft, service disruption, and potential ransomware deployment.

🟢

If Mitigated

Limited impact if proper network segmentation and access controls prevent exploitation attempts.

🌐 Internet-Facing: HIGH - Unauthenticated remote exploitation with CVSS 9.8 score makes internet-facing systems extremely vulnerable.
🏢 Internal Only: HIGH - Even internal systems are vulnerable to network-based attacks from compromised internal hosts.

🎯 Exploit Status

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

Exploitation is straightforward as attackers don't need valid service/method names. Public exploit code exists for similar Hessian deserialization vulnerabilities.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.7.13 or 2.6.10.1

Vendor Advisory: https://lists.apache.org/thread.html/r8d0adc057bb15a37199502cc366f4b1164c9c536ce28e4defdb428c0%40%3Cdev.dubbo.apache.org%3E

Restart Required: Yes

Instructions:

1. Identify Apache Dubbo version. 2. Upgrade to 2.7.13 or 2.6.10.1. 3. Restart all Dubbo services. 4. Verify the fix by checking version and testing Hessian endpoints.

🔧 Temporary Workarounds

Disable Hessian Protocol

all

Remove or disable Hessian protocol configuration if not required for business operations.

Modify dubbo.properties or application configuration to remove Hessian protocol references

Network Access Control

linux

Restrict network access to Dubbo Hessian endpoints using firewall rules.

iptables -A INPUT -p tcp --dport [dubbo-port] -s [trusted-ips] -j ACCEPT
iptables -A INPUT -p tcp --dport [dubbo-port] -j DROP

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate Dubbo services from untrusted networks
  • Deploy web application firewall (WAF) with deserialization attack detection rules

🔍 How to Verify

Check if Vulnerable:

Check Dubbo configuration for Hessian protocol usage and verify version is below 2.7.13 or 2.6.10.1

Check Version:

Check application logs or use Dubbo admin console to verify version

Verify Fix Applied:

Confirm version is 2.7.13 or higher (2.6.10.1 or higher for 2.6.x) and test Hessian endpoints with security scanning tools

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to Hessian endpoints
  • Deserialization errors in logs
  • Unexpected process execution

Network Indicators:

  • Malformed serialized objects in HTTP POST bodies
  • Exploit payload patterns in network traffic

SIEM Query:

source="dubbo" AND (method="POST" AND uri="*hessian*" AND size>10000) OR error="deserialization"

🔗 References

📤 Share & Export