CVE-2024-47542
High · 7.5CVSS
7.5
EPSS
1.1%
Published
Dec 12, 2024
CISA due date
—
Cloudanix analysis
A bug in a popular media library can let attackers crash programs that play or process audio and video files by sending specially crafted media.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Null pointer dereference in id3v2_read_synch_uint when work->hdr.frame_data is null, dereferencing an unvalidated pointer and triggering a segmentation fault.
Why it matters to the business
Applications that parse media files with GStreamer can be crashed remotely, interrupting media playback, streaming, or processing services and requiring restarts.
How an attack unfolds
An attacker supplies a specially crafted media file containing an ID3v2 tag that causes id3v2_read_synch_uint to receive a null frame_data pointer; when the function attempts to read from the null pointer a segmentation fault occurs and the process terminates.
How to fix it
Upgrade gstreamer to the version containing commit 5be4b6f03689ab438822f6cfcd13f1f300afe203 (corresponding to the 1.24.10 release) or later.
How to confirm the fix worked
Confirm the installed GStreamer version includes commit 5be4b6f03689ab438822f6cfcd13f1f300afe203; test parsing of crafted ID3v2 files and verify no segmentation fault occurs.
Typical attack path
- Attacker crafts a media file with malformed ID3v2 metadata that sets frame_data to null
- Victim application opens or processes the file using GStreamer
- id3v2_read_synch_uint is invoked with the null pointer
- Dereference of the null pointer triggers SEGV and process crash
How to detect it
Review system and application logs for segmentation faults in GStreamer processes triggered while parsing ID3v2-tagged media; correlate crashes with recent file ingestion events.
- segmentation fault.*id3v2.c
- gstreamer.*SEGV
- id3v2_read_synch_uint
What your security team should do
- Immediately update all GStreamer installations to a build containing commit 5be4b6f03689ab438822f6cfcd13f1f300afe203
- Scan build pipelines and dependency manifests for vulnerable GStreamer versions
- Monitor crash logs for segmentation faults originating from id3v2.c until patches are deployed
The record
GStreamer is a library for constructing graphs of media-handling components. A null pointer dereference has been discovered in the id3v2_read_synch_uint function, located in id3v2.c. If id3v2_read_synch_uint is called with a null work->hdr.frame_data, the pointer guint8 *data is accessed without validation, resulting in a null pointer dereference. This vulnerability can result in a Denial of Service (DoS) by triggering a segmentation fault (SEGV). This vulnerability is fixed in 1.24.10.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:9 | gstreamer1-plugins-base | 0 | 1.22.12-4.el9 |
| AlmaLinux:9 | gstreamer1-plugins-base-devel | 0 | 1.22.12-4.el9 |
| AlmaLinux:9 | gstreamer1-plugins-base-tools | 0 | 1.22.12-4.el9 |
| Alpine:v3.20 | gst-plugins-base | 0 | 1.24.10-r0 |
| Alpine:v3.21 | gst-plugins-base | 0 | 1.24.10-r0 |
| Alpine:v3.22 | gst-plugins-base | 0 | 1.24.10-r0 |
| Debian:11 | gst-plugins-base1.0 | 0 | 1.18.4-2+deb11u3 |
| Debian:12 | gst-plugins-base1.0 | 0 | 1.22.0-3+deb12u4 |
| Debian:13 | gst-plugins-base1.0 | 0 | 1.24.10-1 |
| Debian:14 | gst-plugins-base1.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-base | 0 | 1.20.1-150400.3.11.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | gstreamer-plugins-base | 0 | 1.20.1-150400.3.11.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | gstreamer-plugins-base | 0 | 1.22.0-150500.3.11.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | gstreamer-plugins-base | 0 | 1.22.0-150500.3.11.1 |
| SUSE:Linux Enterprise Micro 5.3 | gstreamer-plugins-base | 0 | 1.20.1-150400.3.11.1 |
| SUSE:Linux Enterprise Micro 5.4 | gstreamer-plugins-base | 0 | 1.20.1-150400.3.11.1 |
| SUSE:Linux Enterprise Micro 5.5 | gstreamer-plugins-base | 0 | 1.22.0-150500.3.11.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | gstreamer-plugins-base | 0 | 1.24.0-150600.3.8.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | gstreamer-plugins-base | 0 | 1.24.0-150600.3.8.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | gstreamer-plugins-base | 0 | 1.8.3-13.18.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | gstreamer-plugins-base | 0 | 1.20.1-150400.3.11.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | gstreamer-plugins-base | 0 | 1.22.0-150500.3.11.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | gstreamer-plugins-base | 0 | 1.8.3-13.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | gstreamer-plugins-base | 0 | 1.20.1-150400.3.11.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | gstreamer-plugins-base | 0 | 1.22.0-150500.3.11.1 |
| SUSE:Manager Proxy 4.3 | gstreamer-plugins-base | 0 | 1.20.1-150400.3.11.1 |
| SUSE:Manager Server 4.3 | gstreamer-plugins-base | 0 | 1.20.1-150400.3.11.1 |
| Ubuntu:16.04:LTS | gst-plugins-base0.10 | 0 | No fix |
| Ubuntu:20.04:LTS | gst-plugins-base1.0 | 0 | 1.16.3-0ubuntu1.4 |
| Ubuntu:22.04:LTS | gst-plugins-base1.0 | 0 | 1.20.1-1ubuntu0.4 |
| Ubuntu:24.04:LTS | gst-plugins-base1.0 | 0 | 1.24.2-1ubuntu0.2 |
| Ubuntu:24.10 | gst-plugins-base1.0 | 0 | 1.24.8-1ubuntu0.1 |
| Ubuntu:Pro:16.04:LTS | gst-plugins-base0.10 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | gst-plugins-base1.0 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | gst-plugins-base1.0 | 0 | 1.8.3-1ubuntu0.3+esm2 |
| Ubuntu:Pro:18.04:LTS | gst-plugins-base1.0 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | gst-plugins-base1.0 | 0 | 1.14.5-0ubuntu1~18.04.3+esm1 |
| openSUSE:Leap 15.6 | gstreamer-plugins-base | 0 | 1.24.0-150600.3.8.1 |
| openSUSE:Tumbleweed | gstreamer-plugins-base | 0 | 1.24.10-2.1 |
Related vulnerabilities
- CVE-2024-47835 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-base
- CVE-2024-47607 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-base
- CVE-2024-47615 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-base
- CVE-2024-47600 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-base
- CVE-2024-47538 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-base
- CVE-2024-47541 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-base
- CVE-2023-37328 GStreamer PGS File Parsing Heap-based Buffer Overflow Remote Code Execution Vulnerability. Also affects gstreamer1-plugins-base
- CVE-2021-3522 GStreamer before 1.18.4 may perform an out-of-bounds read when handling certain ID3v2… Also affects gst-plugins-base