CVE-2023-50186
High · 8.8CVSS
8.8
EPSS
1.5%
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 crafted video file.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Stack-based buffer overflow in AV1 metadata parsing within GStreamer due to missing length validation before copying attacker-controlled data into a fixed-size stack buffer, enabling arbitrary code execution in the context of the parsing process.
Why it matters to the business
Successful exploitation can allow remote attackers to compromise systems that process AV1 video content, resulting in full control of media playback or transcoding applications and potential lateral movement within media-heavy environments.
How an attack unfolds
An attacker creates a malformed AV1 video containing oversized metadata, delivers the file through common channels such as web downloads or email attachments, and relies on the victim application to invoke GStreamer parsing, which triggers the overflow and executes attacker-supplied code.
How to fix it
Upgrade GStreamer to the commit 4af14db10e8355f980bbf79733af004e59d255fc or later; rebuild and redeploy any applications statically or dynamically linked against the vulnerable library.
How to confirm the fix worked
Confirm the installed GStreamer source matches or exceeds commit 4af14db10e8355f980bbf79733af004e59d255fc; recompile and test parsing of known malformed AV1 samples to verify absence of crashes or memory corruption.
Typical attack path
- Craft malicious AV1 video file embedding oversized metadata
- Deliver the file to the target via web, email, or removable media
- Victim application loads and parses the AV1 stream using GStreamer
- Insufficient bounds check allows overflow of stack buffer
- Attacker-controlled data overwrites return address or function pointers
- Arbitrary code executes in the context of the GStreamer process
How to detect it
Monitor for GStreamer process crashes or segmentation faults while parsing AV1 content; review application logs for unexpected termination during metadata extraction; inspect for anomalous child processes spawned from media-handling binaries.
What your security team should do
- Immediately update all GStreamer installations to the fixed commit
- Inventory and replace any downstream media-processing pipelines that depend on vulnerable GStreamer versions
- Implement application sandboxing or containerization for video-handling services
- Add AV1 file handling to the list of monitored high-risk operations in endpoint detection rules
The record
GStreamer AV1 Video Parsing Stack-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 metadata within 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 stack-based buffer. An attacker can leverage this vulnerability to execute code in the context of the current process. Was ZDI-CAN-22300.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:9 | gstreamer1-plugins-bad-free | 0 | 1.22.1-4.el9 |
| AlmaLinux:9 | gstreamer1-plugins-bad-free-devel | 0 | 1.22.1-4.el9 |
| Debian:12 | gst-plugins-bad1.0 | 0 | 1.22.0-4+deb12u4 |
| Debian:13 | gst-plugins-bad1.0 | 0 | 1.22.8-1 |
| Debian:14 | gst-plugins-bad1.0 | 0 | 1.22.8-1 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-bad-free | 0 | 0:1.22.1-4.el9 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-bad-free-debuginfo | 0 | 0:1.22.1-4.el9 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-bad-free-debugsource | 0 | 0:1.22.1-4.el9 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-bad-free-devel | 0 | 0:1.22.1-4.el9 |
| Red Hat:enterprise_linux:9::crb | gstreamer1-plugins-bad-free | 0 | 0:1.22.1-4.el9 |
| Red Hat:enterprise_linux:9::crb | gstreamer1-plugins-bad-free-debuginfo | 0 | 0:1.22.1-4.el9 |
| Red Hat:enterprise_linux:9::crb | gstreamer1-plugins-bad-free-debugsource | 0 | 0:1.22.1-4.el9 |
| Red Hat:enterprise_linux:9::crb | gstreamer1-plugins-bad-free-devel | 0 | 0:1.22.1-4.el9 |
| Rocky Linux:9 | gstreamer1-plugins-bad-free | 0 | 0:1.22.1-4.el9 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.23.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.23.2 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | gstreamer-plugins-bad | 0 | 1.22.0-150500.3.25.2 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | gstreamer-plugins-bad | 0 | 1.22.0-150500.3.25.2 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | libvpl | 0 | 2023.0.0-150500.3.2.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP6 | libvpl | 0 | 2023.0.0-150500.3.2.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP5 | gstreamer-plugins-bad | 0 | 1.22.0-150500.3.25.2 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.23.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.23.2 |
| SUSE:Manager Proxy 4.3 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.23.2 |
| SUSE:Manager Server 4.3 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.23.2 |
| Ubuntu:20.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:22.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:24.04:LTS | gst-plugins-bad1.0 | 0 | 1.24.2-1ubuntu4 |
| Ubuntu:24.10 | gst-plugins-bad1.0 | 0 | 1.24.2-1ubuntu4 |
| Ubuntu:Pro:14.04:LTS | gst-plugins-bad0.10 | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:Pro:22.04:LTS | gst-plugins-bad1.0 | 0 | 1.20.3-0ubuntu1.1+esm2 |
| openSUSE:Leap 15.5 | gstreamer-plugins-bad | 0 | 1.22.0-lp155.3.10.1 |
| openSUSE:Leap 15.5 | libvpl | 0 | 2023.0.0-150500.3.2.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-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
- 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