CVE-2023-44429
High · 8.8CVSS
8.8
EPSS
1.8%
Published
May 3, 2024
CISA due date
—
Cloudanix analysis
A bug in widely used video software can let attackers take over a computer simply by getting it to open a specially made video 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
Heap-based buffer overflow during AV1 encoded video parsing caused by missing bounds checks on user-supplied data before copying into a fixed-size heap buffer, enabling arbitrary code execution in the context of the GStreamer process.
Why it matters to the business
Compromise of media playback, transcoding, or streaming systems that rely on GStreamer for AV1 content, allowing attackers to run malicious code on affected hosts with potential for data theft or further lateral movement.
How an attack unfolds
An attacker creates a specially crafted AV1 video file containing oversized data in a structure that bypasses length validation. When a vulnerable GStreamer installation processes the file during decoding, the overflow occurs and control flow is redirected to attacker-supplied code.
How to fix it
Update GStreamer to the commit 4d13eddc8b6d3f42ba44682ba42048acf170547f or a later release containing the fix; rebuild and redeploy any dependent applications or containers.
How to confirm the fix worked
Verify the installed GStreamer source or package contains commit 4d13eddc8b6d3f42ba44682ba42048acf170547f; reprocess known-good and boundary-case AV1 streams to confirm absence of crashes or unexpected behavior.
Typical attack path
- Craft malicious AV1 video file exploiting the parsing flaw
- Deliver file via web download, email attachment, or shared media
- Victim application opens or transcodes the file using GStreamer
- Heap overflow triggers and executes arbitrary code in process context
How to detect it
Monitor process crash logs and core dumps from GStreamer-based applications during AV1 decoding; inspect system and application logs for repeated parsing failures or memory corruption indicators on media ingestion paths.
What your security team should do
- Immediately upgrade all GStreamer installations to the fixed commit
- Restrict processing of untrusted AV1 media until patches are applied
- Add AV1 file handling to the organization's vulnerability scanning and patch management workflow
The record
GStreamer AV1 Codec Parsing Heap-based Buffer 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 AV1 encoded video files. The issue results from the lack of proper validation of the length of user-supplied data prior to copying it to a fixed-length heap-based buffer. An attacker can leverage this vulnerability to execute code in the context of the current process. Was ZDI-CAN-22226.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:9 | gstreamer1-plugins-bad-free | 0 | 1.22.1-2.el9_3 |
| AlmaLinux:9 | gstreamer1-plugins-bad-free-devel | 0 | 1.22.1-2.el9_3 |
| Debian:11 | gst-plugins-bad1.0 | 0 | 1.18.4-3+deb11u3 |
| Debian:12 | gst-plugins-bad1.0 | 0 | 1.22.0-4+deb12u3 |
| Debian:13 | gst-plugins-bad1.0 | 0 | 1.22.7-1 |
| Debian:14 | gst-plugins-bad1.0 | 0 | 1.22.7-1 |
| Mageia:9 | gstreamer1.0 | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-devtools | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-editing-services | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-libav | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-moodbar | 0 | 1.2.1-5.mga9 |
| Mageia:9 | gstreamer1.0-omx | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-bad | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-bad | 0 | 1.22.8-1.mga9.tainted |
| Mageia:9 | gstreamer1.0-plugins-base | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-good | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-ugly | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-ugly | 0 | 1.22.8-1.mga9.tainted |
| Mageia:9 | gstreamer1.0-python | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-rtsp-server | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-vaapi | 0 | 1.22.8-1.mga9 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-bad-free | 0 | 0:1.22.1-2.el9_3 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-bad-free-debuginfo | 0 | 0:1.22.1-2.el9_3 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-bad-free-debugsource | 0 | 0:1.22.1-2.el9_3 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-bad-free-devel | 0 | 0:1.22.1-2.el9_3 |
| Red Hat:enterprise_linux:9::crb | gstreamer1-plugins-bad-free | 0 | 0:1.22.1-2.el9_3 |
| Red Hat:enterprise_linux:9::crb | gstreamer1-plugins-bad-free-debuginfo | 0 | 0:1.22.1-2.el9_3 |
| Red Hat:enterprise_linux:9::crb | gstreamer1-plugins-bad-free-debugsource | 0 | 0:1.22.1-2.el9_3 |
| Red Hat:enterprise_linux:9::crb | gstreamer1-plugins-bad-free-devel | 0 | 0:1.22.1-2.el9_3 |
| Red Hat:rhel_eus:9.0::appstream | gstreamer1-plugins-bad-free | 0 | 0:1.18.4-6.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | gstreamer1-plugins-bad-free-debuginfo | 0 | 0:1.18.4-6.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | gstreamer1-plugins-bad-free-debugsource | 0 | 0:1.18.4-6.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | gstreamer1-plugins-bad-free-devel | 0 | 0:1.18.4-6.el9_0 |
| Red Hat:rhel_eus:9.0::crb | gstreamer1-plugins-bad-free | 0 | 0:1.18.4-6.el9_0 |
| Red Hat:rhel_eus:9.0::crb | gstreamer1-plugins-bad-free-debuginfo | 0 | 0:1.18.4-6.el9_0 |
| Red Hat:rhel_eus:9.0::crb | gstreamer1-plugins-bad-free-debugsource | 0 | 0:1.18.4-6.el9_0 |
| Red Hat:rhel_eus:9.0::crb | gstreamer1-plugins-bad-free-devel | 0 | 0:1.18.4-6.el9_0 |
| Red Hat:rhel_eus:9.2::appstream | gstreamer1-plugins-bad-free | 0 | 0:1.18.4-7.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | gstreamer1-plugins-bad-free-debuginfo | 0 | 0:1.18.4-7.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | gstreamer1-plugins-bad-free-debugsource | 0 | 0:1.18.4-7.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | gstreamer1-plugins-bad-free-devel | 0 | 0:1.18.4-7.el9_2 |
| Red Hat:rhel_eus:9.2::crb | gstreamer1-plugins-bad-free | 0 | 0:1.18.4-7.el9_2 |
| Red Hat:rhel_eus:9.2::crb | gstreamer1-plugins-bad-free-debuginfo | 0 | 0:1.18.4-7.el9_2 |
| Red Hat:rhel_eus:9.2::crb | gstreamer1-plugins-bad-free-debugsource | 0 | 0:1.18.4-7.el9_2 |
| Red Hat:rhel_eus:9.2::crb | gstreamer1-plugins-bad-free-devel | 0 | 0:1.18.4-7.el9_2 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP4 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.12.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | gstreamer-plugins-bad | 0 | 1.22.0-150500.3.12.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP4 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.12.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | gstreamer-plugins-bad | 0 | 1.22.0-150500.3.12.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP4 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.12.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP5 | gstreamer-plugins-bad | 0 | 1.22.0-150500.3.12.1 |
| Ubuntu:20.04:LTS | gst-plugins-bad1.0 | 0 | 1.16.3-0ubuntu1.1 |
| Ubuntu:22.04:LTS | gst-plugins-bad1.0 | 0 | 1.20.3-0ubuntu1.1 |
| Ubuntu:23.10 | gst-plugins-bad1.0 | 0 | 1.22.4-1ubuntu1.1 |
| Ubuntu:24.04:LTS | gst-plugins-bad1.0 | 0 | 1.22.4-1ubuntu2 |
| Ubuntu:Pro:14.04:LTS | gst-plugins-bad0.10 | 0 | No fix |
| openSUSE:Leap 15.5 | gstreamer-plugins-bad | 0 | 1.22.0-lp155.3.10.1 |
Related vulnerabilities
- CVE-2024-0444 GStreamer AV1 Video Parsing Stack-based Buffer Overflow Remote Code Execution… Also affects gstreamer1-plugins-bad-free
- CVE-2024-4453 GStreamer EXIF Metadata Parsing Integer Overflow Remote Code Execution Vulnerability. Also affects gstreamer1-plugins-bad-free
- 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-40476 GStreamer H265 Parsing Stack-based Buffer Overflow Remote Code Execution Vulnerability. Also affects gstreamer1-plugins-bad-free
- CVE-2023-40475 GStreamer MXF File Parsing Integer Overflow Remote Code Execution Vulnerability. Also affects gstreamer1-plugins-bad-free
- CVE-2023-40474 GStreamer MXF File Parsing Integer Overflow Remote Code Execution Vulnerability. Also affects gstreamer1-plugins-bad-free
- CVE-2023-37329 GStreamer SRT File Parsing Heap-based Buffer Overflow Remote Code Execution Vulnerability. Also affects gst-plugins-bad1.0