CVE-2023-34613

7.5 HIGH

📋 TL;DR

CVE-2023-34613 is a vulnerability in sojo library versions through 1.1.1 that allows attackers to cause denial of service or other impacts by sending crafted objects with cyclic dependencies. This affects any application using vulnerable sojo versions for object serialization/deserialization.

💻 Affected Systems

Products:
  • sojo
Versions: through 1.1.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using sojo for object serialization/deserialization is vulnerable by default when processing untrusted input.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete application crash leading to sustained denial of service, potential memory exhaustion, and possible remote code execution depending on how sojo is integrated.

🟠

Likely Case

Application instability, denial of service through resource exhaustion, and potential data corruption in affected services.

🟢

If Mitigated

Limited impact with proper input validation and resource limits, though cyclic dependency handling remains problematic.

🌐 Internet-Facing: HIGH - Attackers can exploit this remotely by sending malicious payloads to any endpoint using sojo.
🏢 Internal Only: MEDIUM - Internal attackers or compromised systems could exploit this, but requires access to sojo-using endpoints.

🎯 Exploit Status

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

Proof of concept exists in GitHub issues showing cyclic dependency creation. Exploitation requires sending crafted objects to sojo-processing endpoints.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.1.2 or later

Vendor Advisory: https://github.com/maddingo/sojo/issues/15

Restart Required: Yes

Instructions:

1. Update sojo dependency to version 1.1.2 or later. 2. Restart all applications using sojo. 3. Verify no cyclic dependency handling remains in code.

🔧 Temporary Workarounds

Input validation and sanitization

all

Implement strict input validation to reject objects with cyclic dependencies before processing with sojo.

Resource limiting

all

Configure application to limit recursion depth and memory usage for object deserialization.

🧯 If You Can't Patch

  • Implement WAF rules to detect and block cyclic object patterns in incoming requests.
  • Isolate sojo-using services behind additional authentication layers and limit exposure to untrusted networks.

🔍 How to Verify

Check if Vulnerable:

Check package.json or dependency manifest for sojo version <=1.1.1. Run: npm list sojo or check dependency lock files.

Check Version:

npm list sojo | grep sojo

Verify Fix Applied:

Verify sojo version is >=1.1.2. Test with known cyclic dependency payloads to ensure proper handling.

📡 Detection & Monitoring

Log Indicators:

  • Stack overflow errors
  • Memory exhaustion warnings
  • Unusual recursion depth in object processing
  • Application crashes during object deserialization

Network Indicators:

  • Large nested JSON/object payloads
  • Requests with circular references in data structures
  • Sudden spikes in memory usage

SIEM Query:

source="application.logs" AND ("stack overflow" OR "maximum call stack" OR "cyclic" OR "recursion depth")

🔗 References

📤 Share & Export