CVE-2020-23907

9.8 CRITICAL

📋 TL;DR

This vulnerability in retdec v3.3 allows attackers to trigger a heap buffer overflow via an out-of-bounds read in the canSplitFunctionOn() function. Successful exploitation could lead to denial of service, memory disclosure, or arbitrary code execution. Users of retdec v3.3 are affected.

💻 Affected Systems

Products:
  • retdec
Versions: v3.3
Operating Systems: All platforms running retdec
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in default configuration when processing malicious input files.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise, data theft, and persistent backdoor installation.

🟠

Likely Case

Denial of service causing retdec to crash, potentially disrupting reverse engineering workflows.

🟢

If Mitigated

No impact if patched or if vulnerable version is not exposed to untrusted input.

🌐 Internet-Facing: MEDIUM - retdec is typically used offline, but web interfaces or API endpoints could expose it.
🏢 Internal Only: LOW - retdec is usually run locally on developer workstations with limited attack surface.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires crafting malicious input files, but no public proof-of-concept has been released.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Fixed in commit 517298bafaaff0a8e3dd60dd055a67c41b545807

Vendor Advisory: https://github.com/avast/retdec/commit/517298bafaaff0a8e3dd60dd055a67c41b545807

Restart Required: No

Instructions:

1. Update retdec to latest version. 2. Rebuild from source using patched code. 3. Replace vulnerable binary with patched version.

🔧 Temporary Workarounds

Input validation

all

Only process trusted input files with retdec

Sandbox execution

linux

Run retdec in isolated container or VM

docker run --rm -v $(pwd):/input avast/retdec:latest

🧯 If You Can't Patch

  • Disable retdec usage until patched
  • Implement strict file upload controls and input validation

🔍 How to Verify

Check if Vulnerable:

Check retdec version: retdec --version | grep '3.3'

Check Version:

retdec --version

Verify Fix Applied:

Verify commit hash includes 517298b or check version is newer than v3.3

📡 Detection & Monitoring

Log Indicators:

  • retdec crash logs
  • segmentation fault errors
  • abnormal process termination

Network Indicators:

  • Unusual file uploads to retdec web interfaces

SIEM Query:

process_name:retdec AND (event_type:crash OR exit_code:139)

🔗 References

📤 Share & Export