CVE-2022-47695

7.8 HIGH

📋 TL;DR

A vulnerability in Binutils objdump allows attackers to cause denial of service or potentially other impacts via a specific function in match-o.c. This affects systems using vulnerable versions of Binutils objdump to process malicious Mach-O files. Users and automated systems that process untrusted Mach-O files are at risk.

💻 Affected Systems

Products:
  • Binutils
  • objdump
Versions: All versions before 2.39.3
Operating Systems: Linux, Unix-like systems, Cross-platform
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability triggers when processing malicious Mach-O object files. Systems using objdump on untrusted inputs are most at risk.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise if the vulnerability enables memory corruption beyond DoS.

🟠

Likely Case

Denial of service through application crash when processing malicious Mach-O files.

🟢

If Mitigated

Limited impact if systems don't process untrusted Mach-O files or have proper input validation.

🌐 Internet-Facing: MEDIUM - Risk exists if internet-facing services use objdump on untrusted inputs, but specific conditions required.
🏢 Internal Only: LOW - Typically requires local access or specific workflows involving untrusted Mach-O files.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires crafting malicious Mach-O files and getting them processed by vulnerable objdump. No public exploit code known.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.39.3 and later

Vendor Advisory: https://sourceware.org/bugzilla/show_bug.cgi?id=29846

Restart Required: No

Instructions:

1. Update Binutils to version 2.39.3 or later. 2. Recompile any applications using Binutils libraries. 3. Replace vulnerable objdump binary with patched version.

🔧 Temporary Workarounds

Restrict objdump usage

linux

Limit objdump execution to trusted users and avoid processing untrusted Mach-O files.

chmod 750 /usr/bin/objdump
setfacl -m u:trusteduser:rx /usr/bin/objdump

Input validation

linux

Implement file type verification before processing with objdump.

file --mime-type inputfile | grep -q 'application/x-mach-binary' && echo 'Mach-O file detected'

🧯 If You Can't Patch

  • Isolate systems using objdump on untrusted inputs in restricted network segments.
  • Implement strict access controls and monitoring for objdump usage patterns.

🔍 How to Verify

Check if Vulnerable:

Check objdump version: objdump --version | head -1

Check Version:

objdump --version | head -1

Verify Fix Applied:

Verify version is 2.39.3 or later: objdump --version | grep -q '2.39.3\|2.4'

📡 Detection & Monitoring

Log Indicators:

  • Segmentation fault or crash logs from objdump processes
  • Unusual objdump execution patterns

Network Indicators:

  • Unexpected file transfers to systems running objdump

SIEM Query:

process.name:objdump AND event.action:crash

🔗 References

📤 Share & Export