Cloudanix VulnDB

CVE-2023-44429

High · 8.8

CVSS

8.8

EPSS

1.8%

Published

May 3, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

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

  1. Craft malicious AV1 video file exploiting the parsing flaw
  2. Deliver file via web download, email attachment, or shared media
  3. Victim application opens or transcodes the file using GStreamer
  4. 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