CVE-2023-34609

7.5 HIGH

📋 TL;DR

This vulnerability in flexjson allows attackers to cause denial of service or potentially other impacts by sending crafted objects with cyclic dependencies. It affects all applications using vulnerable versions of the flexjson library for JSON processing. The issue stems from improper handling of object graphs during serialization/deserialization.

💻 Affected Systems

Products:
  • flexjson
Versions: All versions through 3.3
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using flexjson for JSON serialization/deserialization is vulnerable when processing untrusted input.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete application crash leading to denial of service, potential memory exhaustion, or in rare cases remote code execution if combined with other vulnerabilities.

🟠

Likely Case

Application instability, increased resource consumption, and denial of service affecting JSON processing functionality.

🟢

If Mitigated

Minimal impact with proper input validation and resource limits in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Proof of concept available in bug reports showing cyclic dependency creation. Exploitation requires sending crafted JSON payloads to vulnerable endpoints.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version after 3.3

Vendor Advisory: https://sourceforge.net/p/flexjson/bugs/

Restart Required: Yes

Instructions:

1. Upgrade flexjson to version after 3.3. 2. Update application dependencies. 3. Restart affected services. 4. Test JSON processing functionality.

🔧 Temporary Workarounds

Input validation and sanitization

all

Implement strict input validation to reject JSON payloads with cyclic dependencies before processing.

Resource limiting

all

Configure application servers to limit request size and processing time for JSON endpoints.

🧯 If You Can't Patch

  • Implement WAF rules to detect and block JSON payloads with cyclic object patterns
  • Isolate vulnerable services behind reverse proxies with request inspection capabilities

🔍 How to Verify

Check if Vulnerable:

Check application dependencies for flexjson version 3.3 or earlier. Review if application processes JSON from untrusted sources.

Check Version:

Check build configuration files (pom.xml, build.gradle, package.json) for flexjson dependency version.

Verify Fix Applied:

Verify flexjson version is after 3.3. Test with known cyclic dependency payloads to confirm rejection.

📡 Detection & Monitoring

Log Indicators:

  • Stack overflow errors
  • Out of memory errors
  • Unusually large JSON processing times
  • Application crashes during JSON parsing

Network Indicators:

  • Large JSON payloads with repeated object references
  • Multiple rapid requests to JSON endpoints

SIEM Query:

source="application_logs" AND ("StackOverflowError" OR "OutOfMemoryError" OR "JSON processing timeout")

🔗 References

📤 Share & Export