CVE-2024-31570

9.8 CRITICAL

📋 TL;DR

CVE-2024-31570 is a critical stack-based buffer overflow vulnerability in libfreeimage's XPM file parser. Attackers can exploit this by crafting malicious XPM files to execute arbitrary code or crash applications. Any software using FreeImage library versions 3.4.0 through 3.18.0 to process XPM files is affected.

💻 Affected Systems

Products:
  • FreeImage library
  • Applications using FreeImage (e.g., image viewers, editors, games, web applications)
Versions: 3.4.0 through 3.18.0
Operating Systems: All platforms where FreeImage is used (Windows, Linux, macOS, etc.)
Default Config Vulnerable: ⚠️ Yes
Notes: Only vulnerable when processing XPM files. Applications must use the affected FreeImage versions and load XPM files.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution with the privileges of the application using FreeImage, potentially leading to complete system compromise.

🟠

Likely Case

Application crashes (denial of service) or remote code execution in vulnerable applications that process untrusted XPM files.

🟢

If Mitigated

Limited impact if applications don't process XPM files from untrusted sources or have proper sandboxing.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Proof-of-concept exploit code is publicly available. Exploitation requires the target to process a malicious XPM file.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.19.0 or later

Vendor Advisory: https://sourceforge.net/p/freeimage/bugs/355/

Restart Required: Yes

Instructions:

1. Upgrade FreeImage to version 3.19.0 or later. 2. Recompile or update any applications using FreeImage. 3. Restart affected services or applications.

🔧 Temporary Workarounds

Disable XPM file processing

all

Configure applications to reject or not process XPM files.

Application-specific configuration required

Use file type restrictions

all

Implement input validation to block XPM files from untrusted sources.

Implement file extension or MIME type filtering in web applications

🧯 If You Can't Patch

  • Isolate applications using FreeImage in restricted network segments or containers.
  • Implement strict access controls to prevent untrusted XPM files from reaching vulnerable systems.

🔍 How to Verify

Check if Vulnerable:

Check FreeImage version in use by applications. If version is between 3.4.0 and 3.18.0 inclusive, the system is vulnerable.

Check Version:

Check application documentation or use system package manager (e.g., 'dpkg -l | grep freeimage' on Debian/Ubuntu, 'rpm -qa | grep freeimage' on RHEL/Fedora).

Verify Fix Applied:

Verify FreeImage version is 3.19.0 or later and applications have been updated/restarted.

📡 Detection & Monitoring

Log Indicators:

  • Application crashes related to FreeImage or XPM file processing
  • Unexpected process terminations

Network Indicators:

  • Inbound transfers of XPM files to vulnerable systems
  • Outbound connections from applications after processing XPM files

SIEM Query:

Process termination events from applications using FreeImage OR network traffic containing XPM files to vulnerable hosts

🔗 References

📤 Share & Export