CVE-2024-47613
Critical · 9.8CVSS
9.8
EPSS
0.9%
Published
Dec 12, 2024
CISA due date
—
Cloudanix analysis
A flaw in a widely used media library can make programs that play or process video and images crash when they receive certain bad files, interrupting services until the library is updated.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- 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 gst_gdk_pixbuf_dec_flush causes memcpy to write to address 0x00 when out_pix resolves to a NULL frame from the input structure, triggering a segmentation fault.
Why it matters to the business
Media processing pipelines crash on crafted input, leading to service outages for applications that decode or handle image and video streams with GStreamer.
How an attack unfolds
An attacker supplies a media file that causes the gdkpixbuf decoder to read a NULL frame pointer; when flush is called, memcpy attempts a write to the null address and the process terminates.
How to fix it
Upgrade GStreamer to version 1.24.10 or later; apply commit 5be4b6f03689ab438822f6cfcd13f1f300afe203 on GIT builds.
How to confirm the fix worked
Confirm the installed GStreamer version is 1.24.10 or newer; reprocess known triggering media files and verify absence of segmentation faults in the decoder.
Typical attack path
- Prepare a specially crafted media file that triggers a NULL frame in the gdkpixbuf decoder path
- Cause a GStreamer-based application to open and process the file
- Invoke gst_gdk_pixbuf_dec_flush during decode or seek operations
- Trigger the memcpy to null address and induce a segmentation fault
How to detect it
Monitor application and system logs for segmentation faults referencing gst_gdk_pixbuf_dec_flush or gstgdkpixbufdec.c; correlate crashes with recent media file ingestion events.
- gst_gdk_pixbuf_dec_flush
- gstgdkpixbufdec.c
- memcpy.*out_pix
What your security team should do
- Prioritize upgrade of all GStreamer installations to 1.24.10 within the next maintenance window
- Scan dependency manifests for gstreamer/gstreamer and enforce the fixed version in build pipelines
- Add crash-monitoring alerts for segmentation faults originating from gstgdkpixbufdec.c
The record
GStreamer is a library for constructing graphs of media-handling components. A null pointer dereference vulnerability has been identified in `gst_gdk_pixbuf_dec_flush` within `gstgdkpixbufdec.c`. This function invokes `memcpy`, using `out_pix` as the destination address. `out_pix` is expected to point to the frame 0 from the frame structure, which is read from the input file. However, in certain situations, it can points to a NULL frame, causing the subsequent call to `memcpy` to attempt writing to the null address (0x00), leading to 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:8 | gstreamer1-plugins-good | 0 | 1.16.1-5.el8_10 |
| AlmaLinux:8 | gstreamer1-plugins-good-gtk | 0 | 1.16.1-5.el8_10 |
| AlmaLinux:9 | gstreamer1-plugins-good | 0 | 1.22.1-3.el9_5 |
| AlmaLinux:9 | gstreamer1-plugins-good-gtk | 0 | 1.22.1-3.el9_5 |
| 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 |
| Red Hat:enterprise_linux:8::appstream | gstreamer1-plugins-good | 0 | 0:1.16.1-5.el8_10 |
| Red Hat:enterprise_linux:8::appstream | gstreamer1-plugins-good-debuginfo | 0 | 0:1.16.1-5.el8_10 |
| Red Hat:enterprise_linux:8::appstream | gstreamer1-plugins-good-debugsource | 0 | 0:1.16.1-5.el8_10 |
| Red Hat:enterprise_linux:8::appstream | gstreamer1-plugins-good-gtk | 0 | 0:1.16.1-5.el8_10 |
| Red Hat:enterprise_linux:8::appstream | gstreamer1-plugins-good-gtk-debuginfo | 0 | 0:1.16.1-5.el8_10 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-good | 0 | 0:1.22.1-3.el9_5 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-good-debuginfo | 0 | 0:1.22.1-3.el9_5 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-good-debugsource | 0 | 0:1.22.1-3.el9_5 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-good-gtk | 0 | 0:1.22.1-3.el9_5 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-good-gtk-debuginfo | 0 | 0:1.22.1-3.el9_5 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-good-qt-debuginfo | 0 | 0:1.22.1-3.el9_5 |
| Red Hat:rhel_aus:8.2::appstream | gstreamer1-plugins-good | 0 | 0:1.16.1-2.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | gstreamer1-plugins-good-debuginfo | 0 | 0:1.16.1-2.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | gstreamer1-plugins-good-debugsource | 0 | 0:1.16.1-2.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | gstreamer1-plugins-good-gtk | 0 | 0:1.16.1-2.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | gstreamer1-plugins-good-gtk-debuginfo | 0 | 0:1.16.1-2.el8_2 |
| Red Hat:rhel_aus:8.4::appstream | gstreamer1-plugins-good | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | gstreamer1-plugins-good-debuginfo | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | gstreamer1-plugins-good-debugsource | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | gstreamer1-plugins-good-gtk | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | gstreamer1-plugins-good-gtk-debuginfo | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_aus:8.6::appstream | gstreamer1-plugins-good | 0 | 0:1.16.1-3.el8_6 |
| Red Hat:rhel_aus:8.6::appstream | gstreamer1-plugins-good-debuginfo | 0 | 0:1.16.1-3.el8_6 |
| Red Hat:rhel_aus:8.6::appstream | gstreamer1-plugins-good-debugsource | 0 | 0:1.16.1-3.el8_6 |
| Red Hat:rhel_aus:8.6::appstream | gstreamer1-plugins-good-gtk | 0 | 0:1.16.1-3.el8_6 |
| Red Hat:rhel_aus:8.6::appstream | gstreamer1-plugins-good-gtk-debuginfo | 0 | 0:1.16.1-3.el8_6 |
| Red Hat:rhel_e4s:8.4::appstream | gstreamer1-plugins-good | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | gstreamer1-plugins-good-debuginfo | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | gstreamer1-plugins-good-debugsource | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | gstreamer1-plugins-good-gtk | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | gstreamer1-plugins-good-gtk-debuginfo | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_e4s:8.6::appstream | gstreamer1-plugins-good | 0 | 0:1.16.1-3.el8_6 |
| Red Hat:rhel_e4s:8.6::appstream | gstreamer1-plugins-good-debuginfo | 0 | 0:1.16.1-3.el8_6 |
| Red Hat:rhel_e4s:8.6::appstream | gstreamer1-plugins-good-debugsource | 0 | 0:1.16.1-3.el8_6 |
| Red Hat:rhel_e4s:8.6::appstream | gstreamer1-plugins-good-gtk | 0 | 0:1.16.1-3.el8_6 |
| Red Hat:rhel_e4s:8.6::appstream | gstreamer1-plugins-good-gtk-debuginfo | 0 | 0:1.16.1-3.el8_6 |
| Red Hat:rhel_e4s:9.0::appstream | gstreamer1-plugins-good | 0 | 0:1.18.4-6.el9_0 |
| Red Hat:rhel_e4s:9.0::appstream | gstreamer1-plugins-good-debuginfo | 0 | 0:1.18.4-6.el9_0 |
| Red Hat:rhel_e4s:9.0::appstream | gstreamer1-plugins-good-debugsource | 0 | 0:1.18.4-6.el9_0 |
| Red Hat:rhel_e4s:9.0::appstream | gstreamer1-plugins-good-gtk | 0 | 0:1.18.4-6.el9_0 |
| Red Hat:rhel_e4s:9.0::appstream | gstreamer1-plugins-good-gtk-debuginfo | 0 | 0:1.18.4-6.el9_0 |
| Red Hat:rhel_e4s:9.0::appstream | gstreamer1-plugins-good-qt-debuginfo | 0 | 0:1.18.4-6.el9_0 |
| Red Hat:rhel_els:7 | gstreamer1-plugins-base | 0 | 0:1.10.4-3.el7_9 |
| Red Hat:rhel_els:7 | gstreamer1-plugins-base-debuginfo | 0 | 0:1.10.4-3.el7_9 |
| Red Hat:rhel_els:7 | gstreamer1-plugins-base-devel | 0 | 0:1.10.4-3.el7_9 |
| Red Hat:rhel_els:7 | gstreamer1-plugins-base-devel-docs | 0 | 0:1.10.4-3.el7_9 |
| Red Hat:rhel_els:7 | gstreamer1-plugins-base-tools | 0 | 0:1.10.4-3.el7_9 |
| Red Hat:rhel_els:7 | gstreamer1-plugins-good | 0 | 0:1.10.4-3.el7_9 |
| Red Hat:rhel_els:7 | gstreamer1-plugins-good-debuginfo | 0 | 0:1.10.4-3.el7_9 |
| Red Hat:rhel_eus:8.8::appstream | gstreamer1-plugins-good | 0 | 0:1.16.1-4.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | gstreamer1-plugins-good-debuginfo | 0 | 0:1.16.1-4.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | gstreamer1-plugins-good-debugsource | 0 | 0:1.16.1-4.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | gstreamer1-plugins-good-gtk | 0 | 0:1.16.1-4.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | gstreamer1-plugins-good-gtk-debuginfo | 0 | 0:1.16.1-4.el8_8 |
| Red Hat:rhel_eus:9.2::appstream | gstreamer1-plugins-good | 0 | 0:1.18.4-7.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | gstreamer1-plugins-good-debuginfo | 0 | 0:1.18.4-7.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | gstreamer1-plugins-good-debugsource | 0 | 0:1.18.4-7.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | gstreamer1-plugins-good-gtk | 0 | 0:1.18.4-7.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | gstreamer1-plugins-good-gtk-debuginfo | 0 | 0:1.18.4-7.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | gstreamer1-plugins-good-qt-debuginfo | 0 | 0:1.18.4-7.el9_2 |
| Red Hat:rhel_eus:9.4::appstream | gstreamer1-plugins-good | 0 | 0:1.22.1-3.el9_4 |
| Red Hat:rhel_eus:9.4::appstream | gstreamer1-plugins-good-debuginfo | 0 | 0:1.22.1-3.el9_4 |
| Red Hat:rhel_eus:9.4::appstream | gstreamer1-plugins-good-debugsource | 0 | 0:1.22.1-3.el9_4 |
| Red Hat:rhel_eus:9.4::appstream | gstreamer1-plugins-good-gtk | 0 | 0:1.22.1-3.el9_4 |
| Red Hat:rhel_eus:9.4::appstream | gstreamer1-plugins-good-gtk-debuginfo | 0 | 0:1.22.1-3.el9_4 |
| Red Hat:rhel_eus:9.4::appstream | gstreamer1-plugins-good-qt-debuginfo | 0 | 0:1.22.1-3.el9_4 |
| Red Hat:rhel_tus:8.4::appstream | gstreamer1-plugins-good | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | gstreamer1-plugins-good-debuginfo | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | gstreamer1-plugins-good-debugsource | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | gstreamer1-plugins-good-gtk | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | gstreamer1-plugins-good-gtk-debuginfo | 0 | 0:1.16.1-3.el8_4 |
| Red Hat:rhel_tus:8.6::appstream | gstreamer1-plugins-good | 0 | 0:1.16.1-3.el8_6 |
| Red Hat:rhel_tus:8.6::appstream | gstreamer1-plugins-good-debuginfo | 0 | 0:1.16.1-3.el8_6 |
| Red Hat:rhel_tus:8.6::appstream | gstreamer1-plugins-good-debugsource | 0 | 0:1.16.1-3.el8_6 |
| Red Hat:rhel_tus:8.6::appstream | gstreamer1-plugins-good-gtk | 0 | 0:1.16.1-3.el8_6 |
| Red Hat:rhel_tus:8.6::appstream | gstreamer1-plugins-good-gtk-debuginfo | 0 | 0:1.16.1-3.el8_6 |
| Rocky Linux:8 | gstreamer1-plugins-good | 0 | 0:1.16.1-5.el8_10 |
| Rocky Linux:9 | gstreamer1-plugins-good | 0 | 0:1.22.1-3.el9_5 |
| SUSE:Enterprise Storage 7.1 | gstreamer-plugins-good | 0 | 1.16.3-150200.3.17.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | gstreamer-plugins-good | 0 | 1.16.3-150200.3.17.1 |
| 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 12 SP5-LTSS | gstreamer-plugins-base | 0 | 1.8.3-13.18.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | gstreamer-plugins-good | 0 | 1.8.3-16.12.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | gstreamer-plugins-good | 0 | 1.16.3-150200.3.17.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 LTSS Extended Security 12 SP5 | gstreamer-plugins-base | 0 | 1.8.3-13.18.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | gstreamer-plugins-good | 0 | 1.8.3-16.12.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | gstreamer-plugins-good | 0 | 1.16.3-150200.3.17.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-47606 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47539 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47540 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47537 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2023-37327 GStreamer FLAC File Parsing Integer Overflow Remote Code Execution Vulnerability. Also affects gstreamer1-plugins-good
- CVE-2021-3497 GStreamer before 1.18.4 might access already-freed memory in error code paths when… Also affects gstreamer1-plugins-good
- 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