CVE-2024-10573
Medium · 6.7CVSS
6.7
EPSS
0.3%
Published
Oct 31, 2024
CISA due date
—
Cloudanix analysis
A problem in audio software could let someone run bad code on a computer if a specially made sound file is opened, though doing so is difficult.
- Exploitation
- Requires User Interaction
- Attacker needs
- Local User
- Complexity
- High
- Impact
- Full Compromise
- Component
- Library
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Out-of-bounds write in libmpg123 during PCM decoding of crafted streams causes heap buffer corruption with potential for arbitrary code execution under high-complexity conditions.
Why it matters to the business
Attackers could gain code execution on systems processing untrusted audio streams, risking full system compromise; low EPSS and high exploit complexity limit immediate risk, though outdated packages on long-supported platforms increase exposure window.
How an attack unfolds
An attacker creates a specially crafted MPEG stream that passes decoder and synth validation, then tricks a user into scanning the stream with a vulnerable mpg123-based application to trigger the heap write and execute payload.
How to fix it
Upgrade openjdk-7 (Ubuntu:14.04:LTS) to 7u85-2.6.1-5ubuntu0.14.04.1 and openjdk-6 (Ubuntu:14.04:LTS) to 6b37-1.13.9-1ubuntu0.14.04.1; rebuild or replace any downstream packages depending on the vulnerable mpg123 library.
How to confirm the fix worked
Confirm package versions match the listed fixed releases, test decoding of known-good streams, and verify no heap corruption occurs with crafted test inputs.
Typical attack path
- Craft malicious MPEG audio stream validated by MPEG decoder and PCM synth
- Deliver stream via file download or local media
- Victim processes stream using affected application
- Trigger out-of-bounds write to corrupt heap and achieve code execution
How to detect it
Review application logs for mpg123 crashes or buffer-related errors during audio decoding; monitor for unexpected process behavior after media file handling.
What your security team should do
- Apply the exact fixed package versions immediately on all affected Ubuntu 14.04 systems
- Scan for and replace any custom builds or bundled copies of mpg123
- Restrict processing of untrusted local audio files pending updates
The record
An out-of-bounds write flaw was found in mpg123 when handling crafted streams. When decoding PCM, the libmpg123 may write past the end of a heap-located buffer. Consequently, heap corruption may happen, and arbitrary code execution is not discarded. The complexity required to exploit this flaw is considered high as the payload must be validated by the MPEG decoder and the PCM synth before execution. Additionally, to successfully execute the attack, the user must scan through the stream, making web live stream content (such as web radios) a very unlikely attack vector.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | mpg123 | 0 | 1.32.9-1.el8_10 |
| AlmaLinux:8 | mpg123-devel | 0 | 1.32.9-1.el8_10 |
| AlmaLinux:8 | mpg123-libs | 0 | 1.32.9-1.el8_10 |
| AlmaLinux:8 | mpg123-plugins-pulseaudio | 0 | 1.32.9-1.el8_10 |
| AlmaLinux:9 | mpg123 | 0 | 1.32.9-1.el9_5 |
| AlmaLinux:9 | mpg123-devel | 0 | 1.32.9-1.el9_5 |
| AlmaLinux:9 | mpg123-libs | 0 | 1.32.9-1.el9_5 |
| AlmaLinux:9 | mpg123-plugins-pulseaudio | 0 | 1.32.9-1.el9_5 |
| Alpine:v3.21 | mpg123 | 0 | 1.32.8-r0 |
| Alpine:v3.22 | mpg123 | 0 | 1.32.8-r0 |
| Debian:11 | mpg123 | 0 | No fix |
| Debian:11 | mpg123 | 0 | 1.26.4-1+deb11u1 |
| Debian:12 | mpg123 | 0 | No fix |
| Debian:12 | mpg123 | 0 | 1.31.2-1+deb12u1 |
| Debian:13 | mpg123 | 0 | No fix |
| Mageia:9 | mpg123 | 0 | 1.31.3-1.1.mga9 |
| Red Hat:enterprise_linux:8::appstream | mpg123 | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::appstream | mpg123-debuginfo | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::appstream | mpg123-debugsource | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::appstream | mpg123-devel | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::appstream | mpg123-libs | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::appstream | mpg123-libs-debuginfo | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::appstream | mpg123-plugins-pulseaudio | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::appstream | mpg123-plugins-pulseaudio-debuginfo | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::crb | mpg123 | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::crb | mpg123-debuginfo | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::crb | mpg123-debugsource | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::crb | mpg123-devel | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::crb | mpg123-libs | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::crb | mpg123-libs-debuginfo | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::crb | mpg123-plugins-pulseaudio | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:8::crb | mpg123-plugins-pulseaudio-debuginfo | 0 | 0:1.32.9-1.el8_10 |
| Red Hat:enterprise_linux:9::appstream | mpg123 | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::appstream | mpg123-debuginfo | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::appstream | mpg123-debugsource | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::appstream | mpg123-devel | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::appstream | mpg123-libs | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::appstream | mpg123-libs-debuginfo | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::appstream | mpg123-plugins-pulseaudio | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::appstream | mpg123-plugins-pulseaudio-debuginfo | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::crb | mpg123 | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::crb | mpg123-debuginfo | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::crb | mpg123-debugsource | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::crb | mpg123-devel | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::crb | mpg123-libs | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::crb | mpg123-libs-debuginfo | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::crb | mpg123-plugins-pulseaudio | 0 | 0:1.32.9-1.el9_5 |
| Red Hat:enterprise_linux:9::crb | mpg123-plugins-pulseaudio-debuginfo | 0 | 0:1.32.9-1.el9_5 |
| Rocky Linux:9 | mpg123 | 0 | 0:1.32.9-1.el9_5 |
| Ubuntu:18.04:LTS | mpg123 | 0 | No fix |
| Ubuntu:20.04:LTS | mpg123 | 0 | 1.25.13-1ubuntu0.2 |
| Ubuntu:20.04:LTS | mpg123 | 0 | 1.25.13-1ubuntu0.1 |
| Ubuntu:22.04:LTS | mpg123 | 0 | 1.29.3-1ubuntu0.1 |
| Ubuntu:24.04:LTS | mpg123 | 0 | 1.32.5-1ubuntu1.1 |
| Ubuntu:24.10 | mpg123 | 0 | 1.32.7-1ubuntu0.1 |
| Ubuntu:25.04 | mpg123 | 0 | 1.32.8-1 |
| Ubuntu:Pro:14.04:LTS | mpg123 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | mpg123 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | mpg123 | 0 | No fix |
| openSUSE:Tumbleweed | mpg123 | 0 | 1.32.9-1.1 |
Related vulnerabilities
- CVE-2017-11126 The III_i_stereo function in libmpg123/layer3.c in mpg123 through 1.25.1 allows remote… Also affects mpg123
- CVE-2004-1284 Buffer overflow in the find_next_file function in playlist.c for mpg123 0.59r allows… Also affects mpg123
- CVE-2003-0865 Heap-based buffer overflow in readstring of httpget.c for mpg123 0.59r and 0.59s allows… Also affects mpg123
- CVE-2026-111497 A buffer overflow vulnerability in the Brotli decoder (c/dec/decode.c) in Google Brotli… CWE-787
- CVE-2026-112397 Pillow is a Python imaging library. CWE-787
- CVE-2026-112059 libLAS through 1.8.1 contains a heap out-of-bounds write vulnerability in the point… CWE-787
- CVE-2026-89088 A flaw was found in parted. CWE-787
- CVE-2026-89085 A flaw was found in parted. CWE-787