CVE-2019-17113

9.8 CRITICAL

📋 TL;DR

This CVE describes a buffer overflow vulnerability in libopenmpt's C API functions ModPlug_InstrumentName and ModPlug_SampleName. Attackers can exploit this by providing specially crafted module files to execute arbitrary code or crash applications. Any software using vulnerable versions of libopenmpt to process audio modules is affected.

💻 Affected Systems

Products:
  • libopenmpt
  • Software using libopenmpt library
Versions: libopenmpt versions before 0.3.19 and 0.4.x before 0.4.9
Operating Systems: Linux, Windows, macOS, BSD - any OS using libopenmpt
Default Config Vulnerable: ⚠️ Yes
Notes: Applications must use the vulnerable C API functions ModPlug_InstrumentName or ModPlug_SampleName to be exploitable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

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

🟠

Likely Case

Application crash (denial of service) when processing malicious module files, with potential for code execution in some configurations.

🟢

If Mitigated

Application crash without code execution if exploit fails or mitigations like ASLR are effective.

🌐 Internet-Facing: MEDIUM - Risk exists if applications process user-uploaded module files from the internet, but requires specific file format processing.
🏢 Internal Only: LOW - Requires users to open malicious module files, which is less likely in controlled environments.

🎯 Exploit Status

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

Exploitation requires crafting malicious module files and getting them processed by vulnerable software. No public exploit code is known.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: libopenmpt 0.3.19 or 0.4.9

Vendor Advisory: https://github.com/OpenMPT/openmpt/commit/927688ddab43c2b203569de79407a899e734fabe

Restart Required: Yes

Instructions:

1. Identify applications using libopenmpt. 2. Update libopenmpt library to version 0.3.19 or 0.4.9. 3. Recompile applications if using static linking. 4. Restart affected applications.

🔧 Temporary Workarounds

Disable module file processing

all

Prevent applications from processing potentially malicious module files by disabling related features.

Input validation for module files

all

Implement strict validation of module files before passing to libopenmpt functions.

🧯 If You Can't Patch

  • Implement strict file upload controls to prevent malicious module files from being processed
  • Use application sandboxing or containerization to limit potential damage from exploitation

🔍 How to Verify

Check if Vulnerable:

Check libopenmpt version: 'pkg-config --modversion libopenmpt' or check application dependencies. Versions before 0.3.19 or 0.4.9 are vulnerable.

Check Version:

pkg-config --modversion libopenmpt 2>/dev/null || echo 'libopenmpt not found'

Verify Fix Applied:

Verify libopenmpt version is 0.3.19 or higher, or 0.4.9 or higher. Test with known safe module files to ensure functionality.

📡 Detection & Monitoring

Log Indicators:

  • Application crashes when processing module files
  • Segmentation faults in applications using libopenmpt

Network Indicators:

  • Unusual file uploads of module formats (.mod, .xm, .s3m, .it)

SIEM Query:

source="application_logs" AND ("segmentation fault" OR "buffer overflow") AND process="*libopenmpt*"

🔗 References

📤 Share & Export