CVE-2026-22780
📋 TL;DR
A heap overflow vulnerability in Rizin allows attackers to execute arbitrary code or cause denial of service by tricking users into analyzing malicious Mach-O files with specially crafted dyld chained segment entries. This affects all users of Rizin reverse engineering tools who analyze untrusted Mach-O files. The vulnerability is in the Mach-O file parser component.
💻 Affected Systems
- Rizin reverse engineering framework
⚠️ Risk & Real-World Impact
Worst Case
Remote code execution with the privileges of the Rizin user, potentially leading to full system compromise if Rizin runs with elevated privileges.
Likely Case
Application crash (denial of service) when parsing malicious files, potentially corrupting analysis sessions.
If Mitigated
Limited impact if Rizin runs in sandboxed environments or with minimal privileges, restricting damage to the current session.
🎯 Exploit Status
Exploitation requires user interaction to open a malicious file. The vulnerability is in file parsing logic, making exploitation dependent on specific heap layout conditions.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 0.8.2
Vendor Advisory: https://github.com/rizinorg/rizin/releases/tag/v0.8.2
Restart Required: No
Instructions:
1. Backup current Rizin configuration if needed. 2. Update Rizin using your package manager or compile from source. 3. For package managers: 'sudo apt update && sudo apt upgrade rizin' (Debian/Ubuntu) or equivalent. 4. For source compilation: git clone https://github.com/rizinorg/rizin, checkout v0.8.2, follow build instructions.
🔧 Temporary Workarounds
Avoid untrusted Mach-O files
allDo not analyze Mach-O files from untrusted sources until patched.
Run Rizin in sandbox
linuxUse containerization or sandboxing to limit potential damage from exploitation.
docker run --rm -v $(pwd):/work rizin/rizin:latest
🧯 If You Can't Patch
- Restrict Rizin to analyzing only trusted, verified Mach-O files from known sources
- Run Rizin with minimal privileges (non-root user, restricted capabilities)
🔍 How to Verify
Check if Vulnerable:
Check Rizin version: 'rizin --version' or 'rz-bin --version'. If version is below 0.8.2 and you analyze Mach-O files, you are vulnerable.
Check Version:
rizin --version
Verify Fix Applied:
After updating, verify version is 0.8.2 or higher: 'rizin --version | grep -q "0.8.2\|0.9\|1." && echo "Patched"'
📡 Detection & Monitoring
Log Indicators:
- Segmentation faults or abnormal termination when analyzing Mach-O files
- Unexpected memory allocation patterns in system logs
Network Indicators:
- Not applicable - local file parsing vulnerability
SIEM Query:
Process monitoring for rizin/rz-bin crashes when handling Mach-O files, or file monitoring for suspicious Mach-O file access
🔗 References
- https://github.com/rizinorg/rizin/blob/6dd0dba9ff4dc706f549d0cdcd93856b49e59aa0/librz/bin/format/mach0/mach0_chained_fixups.c#L200
- https://github.com/rizinorg/rizin/commit/41ea75d5b07d9b41b27ae80675cdda65f1b1c989
- https://github.com/rizinorg/rizin/issues/5768
- https://github.com/rizinorg/rizin/pull/5770
- https://github.com/rizinorg/rizin/releases/tag/v0.8.2
- https://github.com/rizinorg/rizin/security/advisories/GHSA-f3v7-xhmj-9cjj