CVE-2024-47598
Critical · 9.1CVSS
9.1
EPSS
0.9%
Published
Dec 12, 2024
CISA due date
—
Cloudanix analysis
A bug in media software lets it read a little past the end of its own memory when handling certain video files, which can make programs crash or act strangely.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Low
- Impact
- Data Tampering
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Out-of-bounds read of up to 4 bytes in qtdemux_merge_sample_table when parsing the stts sample table in MP4/QT containers, caused by missing bounds check on stts->data before accessing stts_duration.
Why it matters to the business
Applications using GStreamer to process untrusted media files may crash or behave unexpectedly, leading to denial of service in media pipelines, playback services, or content ingestion systems; high prevalence in multimedia software increases exposure across desktop, server, and embedded environments.
How an attack unfolds
An attacker crafts a malicious MP4 file containing a malformed stts atom with an undersized buffer, then causes a target application to open and parse the file with GStreamer; qtdemux_merge_sample_table reads 4 bytes past the allocated stts buffer, potentially triggering crashes or limited information disclosure depending on memory layout.
How to fix it
Upgrade GStreamer to version 1.24.10 or later; apply commit 5be4b6f03689ab438822f6cfcd13f1f300afe203 in GIT builds; rebuild and redeploy any dependent applications or containers after updating the library.
How to confirm the fix worked
Confirm the installed GStreamer version is 1.24.10 or newer; test parsing of known-malformed test files that previously triggered the OOB read; verify the qtdemux.c source contains the bounds check added in the referenced commit.
Typical attack path
- Attacker creates specially crafted MP4/QT file with invalid stts sample table size
- Victim or automated system opens or streams the malicious file using a GStreamer-based application
- qtdemux parses the stts atom and calls qtdemux_merge_sample_table without proper bounds validation
- Four bytes are read beyond the stts->data allocation, causing memory corruption effects
How to detect it
Review application logs and crash reports for segmentation faults or memory errors during MP4/QT demuxing; search process memory dumps or core files for evidence of stts table processing anomalies; no public exploitation artifacts are known at this time.
What your security team should do
- Immediately update all GStreamer installations to 1.24.10 or the patched GIT commit
- Scan media ingestion and playback services for use of vulnerable GStreamer versions
- Add media file sanitization or sandboxing for untrusted content until patches are applied
- Monitor EPSS and exploit maturity indicators for any increase in observed activity
The record
GStreamer is a library for constructing graphs of media-handling components. An OOB-read vulnerability has been discovered in the qtdemux_merge_sample_table function within qtdemux.c. The problem is that the size of the stts buffer isn’t properly checked before reading stts_duration, allowing the program to read 4 bytes beyond the boundaries of stts->data. This vulnerability reads up to 4 bytes past the allocated bounds of the stts array. This vulnerability is fixed in 1.24.10.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:9 | gstreamer1-plugins-good | 0 | 1.22.12-4.el9 |
| AlmaLinux:9 | gstreamer1-plugins-good-gtk | 0 | 1.22.12-4.el9 |
| Debian:11 | gst-plugins-good1.0 | 0 | No fix |
| Debian:11 | gst-plugins-good1.0 | 0 | 1.18.4-2+deb11u3 |
| Debian:12 | gst-plugins-good1.0 | 0 | 1.22.0-5+deb12u2 |
| Debian:13 | gst-plugins-good1.0 | 0 | 1.24.10-1 |
| Debian:14 | gst-plugins-good1.0 | 0 | 1.24.10-1 |
| Mageia:9 | gstreamer1.0 | 0 | 1.22.11-1.1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-base | 0 | 1.22.11-1.2.mga9 |
| Mageia:9 | gstreamer1.0-plugins-good | 0 | 1.22.11-1.1.mga9 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | gstreamer-plugins-good | 0 | 1.20.1-150400.3.9.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | gstreamer-plugins-good | 0 | 1.20.1-150400.3.9.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | gstreamer-plugins-good | 0 | 1.22.0-150500.4.6.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | gstreamer-plugins-good | 0 | 1.22.0-150500.4.6.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | gstreamer-plugins-good | 0 | 1.24.0-150600.3.3.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | gstreamer-plugins-good | 0 | 1.20.1-150400.3.9.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | gstreamer-plugins-good | 0 | 1.22.0-150500.4.6.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | gstreamer-plugins-good | 0 | 1.20.1-150400.3.9.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | gstreamer-plugins-good | 0 | 1.22.0-150500.4.6.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP6 | gstreamer-plugins-good | 0 | 1.24.0-150600.3.3.1 |
| SUSE:Manager Proxy 4.3 | gstreamer-plugins-good | 0 | 1.20.1-150400.3.9.1 |
| SUSE:Manager Server 4.3 | gstreamer-plugins-good | 0 | 1.20.1-150400.3.9.1 |
| Ubuntu:16.04:LTS | gst-plugins-good0.10 | 0 | No fix |
| Ubuntu:20.04:LTS | gst-plugins-good1.0 | 0 | 1.16.3-0ubuntu1.3 |
| Ubuntu:22.04:LTS | gst-plugins-good1.0 | 0 | 1.20.3-0ubuntu1.3 |
| Ubuntu:24.04:LTS | gst-plugins-good1.0 | 0 | 1.24.2-1ubuntu1.1 |
| Ubuntu:24.10 | gst-plugins-good1.0 | 0 | 1.24.8-1ubuntu1.1 |
| Ubuntu:Pro:16.04:LTS | gst-plugins-good0.10 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | gst-plugins-good1.0 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | gst-plugins-good1.0 | 0 | No fix |
| openSUSE:Leap 15.6 | gstreamer-plugins-good | 0 | 1.24.0-150600.3.3.1 |
| openSUSE:Tumbleweed | gstreamer-plugins-good | 0 | 1.24.10-2.1 |
Related vulnerabilities
- CVE-2024-47834 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47774 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47775 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47778 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47776 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47777 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47603 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47606 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good