CVE-2024-4453
High · 7.8CVSS
7.8
EPSS
1.6%
Published
May 22, 2024
CISA due date
—
Cloudanix analysis
A bug in software that handles photos and videos could let attackers take over a computer simply by tricking it into opening a specially made file.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Integer overflow during EXIF metadata parsing in GStreamer leads to incorrect buffer allocation sizes, enabling out-of-bounds memory access and arbitrary code execution in the context of the processing process.
Why it matters to the business
Attackers could gain control over systems that process media files containing EXIF data, resulting in potential data theft, malware deployment, or disruption of media-handling workflows across desktop and embedded applications.
How an attack unfolds
An attacker creates a media file embedding crafted EXIF metadata with values that trigger an integer overflow, then delivers the file to a target system; when GStreamer parses the metadata during normal media handling, the overflow allows injection and execution of attacker-controlled code.
How to fix it
Upgrade desktop.org/tpm/gstreamer (GIT) to commit e68eccff103ab0e91e6d77a892f57131b33902f5 or later; rebuild dependent applications against the patched library and verify the update across all affected installations.
How to confirm the fix worked
Confirm the installed GStreamer commit hash matches or exceeds e68eccff103ab0e91e6d77a892f57131b33902f5; recompile test applications and attempt parsing of known-good and boundary EXIF media files to ensure no overflow occurs.
Typical attack path
- Craft media file with malicious EXIF metadata designed to overflow an integer during size calculation
- Deliver the file to a victim via email, web download, or removable media
- Victim application invokes GStreamer to parse or render the media
- Vulnerable EXIF parser computes incorrect allocation size
- Overflow enables memory corruption and shellcode execution
How to detect it
Review process crash logs and memory dumps from GStreamer-based applications for signs of heap corruption during EXIF parsing; inspect application logs for unexpected file handling errors on media containing EXIF tags.
What your security team should do
- Prioritize updating GStreamer to the fixed commit across all environments
- Inventory and replace any downstream packages that embed the vulnerable library
- Implement media file sandboxing or parsing restrictions until patches are deployed
- Monitor vulnerability disclosure feeds for related issues in GStreamer ecosystem components
The record
GStreamer EXIF Metadata Parsing Integer Overflow Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of GStreamer. Interaction with this library is required to exploit this vulnerability but attack vectors may vary depending on the implementation. The specific flaw exists within the parsing of EXIF metadata. The issue results from the lack of proper validation of user-supplied data, which can result in an integer overflow before allocating a buffer. An attacker can leverage this vulnerability to execute code in the context of the current process. . Was ZDI-CAN-23896.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | gstreamer1-plugins-base | 0 | 1.16.1-4.el8_10 |
| AlmaLinux:8 | gstreamer1-plugins-base-devel | 0 | 1.16.1-4.el8_10 |
| AlmaLinux:9 | gstreamer1 | 0 | 1.22.12-3.el9 |
| AlmaLinux:9 | gstreamer1-devel | 0 | 1.22.12-3.el9 |
| AlmaLinux:9 | gstreamer1-plugins-bad-free | 0 | 1.22.12-3.el9 |
| AlmaLinux:9 | gstreamer1-plugins-bad-free-devel | 0 | 1.22.12-3.el9 |
| AlmaLinux:9 | gstreamer1-plugins-bad-free-libs | 0 | 1.22.12-3.el9 |
| AlmaLinux:9 | gstreamer1-plugins-ugly-free | 0 | 1.22.12-3.el9 |
| AlmaLinux:9 | gstreamer1-rtsp-server | 0 | 1.22.12-3.el9 |
| Debian:10 | gst-plugins-base1.0 | 0 | 1.14.4-2+deb10u3 |
| Debian:11 | gst-plugins-base1.0 | 0 | 1.18.4-2+deb11u2 |
| Debian:12 | gst-plugins-base1.0 | 0 | 1.22.0-3+deb12u2 |
| Debian:13 | gst-plugins-base1.0 | 0 | 1.24.3-1 |
| Mageia:9 | gstreamer1.0-plugins-base | 0 | 1.22.11-1.1.mga9 |
| Red Hat:enterprise_linux:8::appstream | gstreamer1-plugins-base | 0 | 0:1.16.1-4.el8_10 |
| Red Hat:enterprise_linux:8::appstream | gstreamer1-plugins-base-debuginfo | 0 | 0:1.16.1-4.el8_10 |
| Red Hat:enterprise_linux:8::appstream | gstreamer1-plugins-base-debugsource | 0 | 0:1.16.1-4.el8_10 |
| Red Hat:enterprise_linux:8::appstream | gstreamer1-plugins-base-devel | 0 | 0:1.16.1-4.el8_10 |
| Red Hat:enterprise_linux:8::appstream | gstreamer1-plugins-base-tools-debuginfo | 0 | 0:1.16.1-4.el8_10 |
| Rocky Linux:8 | gstreamer1-plugins-base | 0 | 0:1.16.1-4.el8_10 |
| SUSE:Enterprise Storage 7 | gstreamer-plugins-base | 0 | 1.16.3-150200.4.14.2 |
| SUSE:Enterprise Storage 7.1 | gstreamer-plugins-base | 0 | 1.16.3-150200.4.14.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | gstreamer-plugins-base | 0 | 1.16.3-150200.4.14.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | gstreamer-plugins-base | 0 | 1.16.3-150200.4.14.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | gstreamer-plugins-base | 0 | 1.20.1-150400.3.8.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | gstreamer-plugins-base | 0 | 1.20.1-150400.3.8.2 |
| SUSE:Linux Enterprise Micro 5.2 | gstreamer-plugins-base | 0 | 1.16.3-150200.4.14.2 |
| SUSE:Linux Enterprise Micro 5.3 | gstreamer-plugins-base | 0 | 1.20.1-150400.3.8.2 |
| SUSE:Linux Enterprise Micro 5.4 | gstreamer-plugins-base | 0 | 1.20.1-150400.3.8.2 |
| SUSE:Linux Enterprise Micro 5.5 | gstreamer-plugins-base | 0 | 1.22.0-150500.3.8.2 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | gstreamer-plugins-base | 0 | 1.22.0-150500.3.8.2 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | gstreamer-plugins-base | 0 | 1.24.0-150600.3.3.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP5 | gstreamer-plugins-base | 0 | 1.22.0-150500.3.8.2 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | gstreamer-plugins-base | 0 | 1.24.0-150600.3.3.1 |
| SUSE:Linux Enterprise Server 12 SP5 | gstreamer-plugins-base | 0 | 1.8.3-13.15.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | gstreamer-plugins-base | 0 | 1.16.3-150200.4.14.2 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | gstreamer-plugins-base | 0 | 1.16.3-150200.4.14.2 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | gstreamer-plugins-base | 0 | 1.20.1-150400.3.8.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | gstreamer-plugins-base | 0 | 1.8.3-13.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | gstreamer-plugins-base | 0 | 1.16.3-150200.4.14.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | gstreamer-plugins-base | 0 | 1.16.3-150200.4.14.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | gstreamer-plugins-base | 0 | 1.20.1-150400.3.8.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | gstreamer-plugins-base | 0 | 1.8.3-13.15.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP5 | gstreamer-plugins-base | 0 | 1.8.3-13.15.1 |
| SUSE:Manager Proxy 4.3 | gstreamer-plugins-base | 0 | 1.20.1-150400.3.8.2 |
| SUSE:Manager Server 4.3 | gstreamer-plugins-base | 0 | 1.20.1-150400.3.8.2 |
| Ubuntu:16.04:LTS | gst-plugins-base0.10 | 0 | No fix |
| Ubuntu:20.04:LTS | gst-plugins-base1.0 | 0 | 1.16.3-0ubuntu1.3 |
| Ubuntu:22.04:LTS | gst-plugins-base1.0 | 0 | 1.20.1-1ubuntu0.2 |
| Ubuntu:23.10 | gst-plugins-base1.0 | 0 | 1.22.6-1ubuntu0.1 |
| Ubuntu:24.04:LTS | gst-plugins-base1.0 | 0 | 1.24.2-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.5 | gstreamer-plugins-base | 0 | 1.22.0-150500.3.8.2 |
| openSUSE:Leap 15.6 | gstreamer-plugins-base | 0 | 1.24.0-150600.3.3.1 |
| openSUSE:Leap Micro 5.3 | gstreamer-plugins-base | 0 | 1.20.1-150400.3.8.2 |
| openSUSE:Leap Micro 5.4 | gstreamer-plugins-base | 0 | 1.20.1-150400.3.8.2 |
Related vulnerabilities
- 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-47538 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-2024-0444 GStreamer AV1 Video Parsing Stack-based Buffer Overflow Remote Code Execution… Also affects gstreamer1
- CVE-2023-50186 GStreamer AV1 Video Parsing Stack-based Buffer Overflow Remote Code Execution… Also affects gstreamer1-plugins-bad-free
- CVE-2023-44446 GStreamer MXF File Parsing Use-After-Free Remote Code Execution Vulnerability. Also affects gstreamer1-plugins-bad-free
- CVE-2023-44429 GStreamer AV1 Codec Parsing Heap-based Buffer Overflow Remote Code Execution… Also affects gstreamer1-plugins-bad-free