CVE-2023-35839

9.8 CRITICAL

📋 TL;DR

CVE-2023-35839 is a critical deserialization vulnerability in Solon's sofa-hessian component that allows remote attackers to execute arbitrary code by sending specially crafted payloads. This affects all systems running Solon versions before 2.3.3 that use the vulnerable component. Attackers can achieve remote code execution without authentication, potentially compromising entire systems.

💻 Affected Systems

Products:
  • Solon
Versions: All versions before 2.3.3
Operating Systems: All platforms running Java
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems using the sofa-hessian component for deserialization. The vulnerability is present in default configurations when this component is used.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise with attacker gaining full control over the affected server, allowing data theft, ransomware deployment, or use as a foothold for lateral movement.

🟠

Likely Case

Remote code execution leading to application compromise, data exfiltration, and potential pivoting to other internal systems.

🟢

If Mitigated

Limited impact with proper network segmentation, but still potential for application-level compromise if exploited.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

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

The vulnerability is a deserialization bypass that can be exploited with crafted payloads. Public references and GitHub commits demonstrate the exploit mechanism.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.3.3 and later

Vendor Advisory: https://github.com/noear/solon/compare/v2.3.2...v2.3.3

Restart Required: Yes

Instructions:

1. Update Solon to version 2.3.3 or later. 2. Update dependencies: 'mvn clean install' or equivalent. 3. Restart the application server. 4. Verify the fix by checking the version.

🔧 Temporary Workarounds

Disable sofa-hessian component

all

Temporarily disable or remove the vulnerable sofa-hessian component if not essential for functionality.

Remove or comment out sofa-hessian dependencies in pom.xml or build.gradle

Network segmentation

linux

Restrict network access to affected systems using firewalls or security groups.

iptables -A INPUT -p tcp --dport [application_port] -s [trusted_ips] -j ACCEPT
iptables -A INPUT -p tcp --dport [application_port] -j DROP

🧯 If You Can't Patch

  • Implement strict input validation and filtering for all deserialization endpoints
  • Deploy web application firewall (WAF) rules to block malicious deserialization payloads

🔍 How to Verify

Check if Vulnerable:

Check Solon version and sofa-hessian component usage. If version < 2.3.3 and using sofa-hessian, system is vulnerable.

Check Version:

Check application startup logs or use: java -jar [application.jar] --version

Verify Fix Applied:

Verify Solon version is 2.3.3 or later and review application logs for any deserialization errors post-patch.

📡 Detection & Monitoring

Log Indicators:

  • Unusual deserialization errors
  • Stack traces containing 'sofa-hessian' or deserialization classes
  • Unexpected process spawns or network connections

Network Indicators:

  • Unusual payloads to deserialization endpoints
  • Traffic patterns matching exploit payloads

SIEM Query:

source="application.logs" AND ("sofa-hessian" OR "deserialization" OR "ClassNotFoundException")

🔗 References

📤 Share & Export