Cloudanix VulnDB

CVE-2024-47538

Critical · 9.8

CVSS

9.8

EPSS

1.3%

Published

Dec 12, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A bug in a widely used media library can let attackers take over systems by sending specially made audio files.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Low
Impact
Full Compromise
Component
Library
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Stack buffer overflow in vorbis_handle_identification_packet allows writing beyond a 64-element position array when channels exceed 64, overwriting the return address (EIP) and GstAudioInfo structure with GST_AUDIO_CHANNEL_POSITION_NONE values.

Why it matters to the business

Applications using GStreamer for media playback or processing can be crashed or have arbitrary code executed when handling crafted Vorbis streams, leading to service disruption or full system compromise in media pipelines.

How an attack unfolds

An attacker supplies a specially crafted Vorbis identification packet containing more than 64 audio channels; during decoding the loop writes outside the stack-allocated position buffer, corrupting the saved return address and enabling control-flow hijacking or structure overwrite.

How to fix it

Upgrade GStreamer to version 1.24.10 or apply commit 5be4b6f03689ab438822f6cfcd13f1f300afe203 in the GIT repository; rebuild and redeploy affected applications.

How to confirm the fix worked

Confirm installed GStreamer version is 1.24.10 or later; test with a Vorbis stream containing 65+ channels and verify absence of crashes or unexpected memory writes.

Typical attack path

  1. Craft malicious Vorbis stream with vd->vi.channels > 64
  2. Deliver stream to target application using GStreamer vorbisdec
  3. Trigger identification packet handling to cause out-of-bounds write
  4. Overwrite EIP or GstAudioInfo to achieve code execution or crash

How to detect it

Monitor application logs and crash reports for segmentation faults or memory corruption signals during Vorbis decoding; inspect process memory dumps for overwritten position arrays or corrupted GstAudioInfo structures.

What your security team should do

  • Immediately update all GStreamer installations to the fixed version
  • Scan media-processing pipelines for use of vorbisdec and prioritize patching
  • Implement input validation or sandboxing around untrusted media streams until patched

The record

GStreamer is a library for constructing graphs of media-handling components. A stack-buffer overflow has been detected in the `vorbis_handle_identification_packet` function within `gstvorbisdec.c`. The position array is a stack-allocated buffer of size 64. If vd->vi.channels exceeds 64, the for loop will write beyond the boundaries of the position array. The value written will always be `GST_AUDIO_CHANNEL_POSITION_NONE`. This vulnerability allows someone to overwrite the EIP address allocated in the stack. Additionally, this bug can overwrite the `GstAudioInfo` info structure. This vulnerability is fixed in 1.24.10.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:8 gstreamer1-plugins-base 0 1.16.1-5.el8_10
AlmaLinux:8 gstreamer1-plugins-base-devel 0 1.16.1-5.el8_10
AlmaLinux:9 gstreamer1-plugins-base 0 1.22.1-3.el9_5
AlmaLinux:9 gstreamer1-plugins-base-devel 0 1.22.1-3.el9_5
AlmaLinux:9 gstreamer1-plugins-base-tools 0 1.22.1-3.el9_5
Alpine:v3.20 gst-plugins-base 0 1.24.10-r0
Alpine:v3.21 gst-plugins-base 0 1.24.10-r0
Alpine:v3.22 gst-plugins-base 0 1.24.10-r0
Debian:11 gst-plugins-base1.0 0 1.18.4-2+deb11u3
Debian:12 gst-plugins-base1.0 0 1.22.0-3+deb12u3
Debian:13 gst-plugins-base1.0 0 1.24.10-1
Debian:14 gst-plugins-base1.0 0 1.24.10-1
Mageia:9 gstreamer1.0 0 1.22.11-1.1.mga9
Mageia:9 gstreamer1.0-plugins-base 0 1.22.11-1.2.mga9
Mageia:9 gstreamer1.0-plugins-good 0 1.22.11-1.1.mga9
Red Hat:enterprise_linux:8::appstream gstreamer1-plugins-base 0 0:1.16.1-5.el8_10
Red Hat:enterprise_linux:8::appstream gstreamer1-plugins-base-debuginfo 0 0:1.16.1-5.el8_10
Red Hat:enterprise_linux:8::appstream gstreamer1-plugins-base-debugsource 0 0:1.16.1-5.el8_10
Red Hat:enterprise_linux:8::appstream gstreamer1-plugins-base-devel 0 0:1.16.1-5.el8_10
Red Hat:enterprise_linux:8::appstream gstreamer1-plugins-base-tools-debuginfo 0 0:1.16.1-5.el8_10
Red Hat:enterprise_linux:9::appstream gstreamer1-plugins-base 0 0:1.22.1-3.el9_5
Red Hat:enterprise_linux:9::appstream gstreamer1-plugins-base-debuginfo 0 0:1.22.1-3.el9_5
Red Hat:enterprise_linux:9::appstream gstreamer1-plugins-base-debugsource 0 0:1.22.1-3.el9_5
Red Hat:enterprise_linux:9::appstream gstreamer1-plugins-base-devel 0 0:1.22.1-3.el9_5
Red Hat:enterprise_linux:9::appstream gstreamer1-plugins-base-tools 0 0:1.22.1-3.el9_5
Red Hat:enterprise_linux:9::appstream gstreamer1-plugins-base-tools-debuginfo 0 0:1.22.1-3.el9_5
Red Hat:rhel_aus:8.2::appstream gstreamer1-plugins-base 0 0:1.16.1-2.el8_2
Red Hat:rhel_aus:8.2::appstream gstreamer1-plugins-base-debuginfo 0 0:1.16.1-2.el8_2
Red Hat:rhel_aus:8.2::appstream gstreamer1-plugins-base-debugsource 0 0:1.16.1-2.el8_2
Red Hat:rhel_aus:8.2::appstream gstreamer1-plugins-base-devel 0 0:1.16.1-2.el8_2
Red Hat:rhel_aus:8.2::appstream gstreamer1-plugins-base-tools-debuginfo 0 0:1.16.1-2.el8_2
Red Hat:rhel_aus:8.4::appstream gstreamer1-plugins-base 0 0:1.16.1-3.el8_4
Red Hat:rhel_aus:8.4::appstream gstreamer1-plugins-base-debuginfo 0 0:1.16.1-3.el8_4
Red Hat:rhel_aus:8.4::appstream gstreamer1-plugins-base-debugsource 0 0:1.16.1-3.el8_4
Red Hat:rhel_aus:8.4::appstream gstreamer1-plugins-base-devel 0 0:1.16.1-3.el8_4
Red Hat:rhel_aus:8.4::appstream gstreamer1-plugins-base-tools-debuginfo 0 0:1.16.1-3.el8_4
Red Hat:rhel_aus:8.6::appstream gstreamer1-plugins-base 0 0:1.16.1-3.el8_6
Red Hat:rhel_aus:8.6::appstream gstreamer1-plugins-base-debuginfo 0 0:1.16.1-3.el8_6
Red Hat:rhel_aus:8.6::appstream gstreamer1-plugins-base-debugsource 0 0:1.16.1-3.el8_6
Red Hat:rhel_aus:8.6::appstream gstreamer1-plugins-base-devel 0 0:1.16.1-3.el8_6
Red Hat:rhel_aus:8.6::appstream gstreamer1-plugins-base-tools-debuginfo 0 0:1.16.1-3.el8_6
Red Hat:rhel_e4s:8.4::appstream gstreamer1-plugins-base 0 0:1.16.1-3.el8_4
Red Hat:rhel_e4s:8.4::appstream gstreamer1-plugins-base-debuginfo 0 0:1.16.1-3.el8_4
Red Hat:rhel_e4s:8.4::appstream gstreamer1-plugins-base-debugsource 0 0:1.16.1-3.el8_4
Red Hat:rhel_e4s:8.4::appstream gstreamer1-plugins-base-devel 0 0:1.16.1-3.el8_4
Red Hat:rhel_e4s:8.4::appstream gstreamer1-plugins-base-tools-debuginfo 0 0:1.16.1-3.el8_4
Red Hat:rhel_e4s:8.6::appstream gstreamer1-plugins-base 0 0:1.16.1-3.el8_6
Red Hat:rhel_e4s:8.6::appstream gstreamer1-plugins-base-debuginfo 0 0:1.16.1-3.el8_6
Red Hat:rhel_e4s:8.6::appstream gstreamer1-plugins-base-debugsource 0 0:1.16.1-3.el8_6
Red Hat:rhel_e4s:8.6::appstream gstreamer1-plugins-base-devel 0 0:1.16.1-3.el8_6
Red Hat:rhel_e4s:8.6::appstream gstreamer1-plugins-base-tools-debuginfo 0 0:1.16.1-3.el8_6
Red Hat:rhel_e4s:9.0::appstream gstreamer1-plugins-base 0 0:1.18.4-7.el9_0
Red Hat:rhel_e4s:9.0::appstream gstreamer1-plugins-base-debuginfo 0 0:1.18.4-7.el9_0
Red Hat:rhel_e4s:9.0::appstream gstreamer1-plugins-base-debugsource 0 0:1.18.4-7.el9_0
Red Hat:rhel_e4s:9.0::appstream gstreamer1-plugins-base-devel 0 0:1.18.4-7.el9_0
Red Hat:rhel_e4s:9.0::appstream gstreamer1-plugins-base-tools-debuginfo 0 0:1.18.4-7.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-base 0 0:1.16.1-3.el8_8
Red Hat:rhel_eus:8.8::appstream gstreamer1-plugins-base-debuginfo 0 0:1.16.1-3.el8_8
Red Hat:rhel_eus:8.8::appstream gstreamer1-plugins-base-debugsource 0 0:1.16.1-3.el8_8
Red Hat:rhel_eus:8.8::appstream gstreamer1-plugins-base-devel 0 0:1.16.1-3.el8_8
Red Hat:rhel_eus:8.8::appstream gstreamer1-plugins-base-tools-debuginfo 0 0:1.16.1-3.el8_8
Red Hat:rhel_eus:9.2::appstream gstreamer1-plugins-base 0 0:1.18.4-7.el9_2
Red Hat:rhel_eus:9.2::appstream gstreamer1-plugins-base-debuginfo 0 0:1.18.4-7.el9_2
Red Hat:rhel_eus:9.2::appstream gstreamer1-plugins-base-debugsource 0 0:1.18.4-7.el9_2
Red Hat:rhel_eus:9.2::appstream gstreamer1-plugins-base-devel 0 0:1.18.4-7.el9_2
Red Hat:rhel_eus:9.2::appstream gstreamer1-plugins-base-tools 0 0:1.18.4-7.el9_2
Red Hat:rhel_eus:9.2::appstream gstreamer1-plugins-base-tools-debuginfo 0 0:1.18.4-7.el9_2
Red Hat:rhel_eus:9.4::appstream gstreamer1-plugins-base 0 0:1.22.1-3.el9_4
Red Hat:rhel_eus:9.4::appstream gstreamer1-plugins-base-debuginfo 0 0:1.22.1-3.el9_4
Red Hat:rhel_eus:9.4::appstream gstreamer1-plugins-base-debugsource 0 0:1.22.1-3.el9_4
Red Hat:rhel_eus:9.4::appstream gstreamer1-plugins-base-devel 0 0:1.22.1-3.el9_4
Red Hat:rhel_eus:9.4::appstream gstreamer1-plugins-base-tools 0 0:1.22.1-3.el9_4
Red Hat:rhel_eus:9.4::appstream gstreamer1-plugins-base-tools-debuginfo 0 0:1.22.1-3.el9_4
Red Hat:rhel_tus:8.4::appstream gstreamer1-plugins-base 0 0:1.16.1-3.el8_4
Red Hat:rhel_tus:8.4::appstream gstreamer1-plugins-base-debuginfo 0 0:1.16.1-3.el8_4
Red Hat:rhel_tus:8.4::appstream gstreamer1-plugins-base-debugsource 0 0:1.16.1-3.el8_4
Red Hat:rhel_tus:8.4::appstream gstreamer1-plugins-base-devel 0 0:1.16.1-3.el8_4
Red Hat:rhel_tus:8.4::appstream gstreamer1-plugins-base-tools-debuginfo 0 0:1.16.1-3.el8_4
Red Hat:rhel_tus:8.6::appstream gstreamer1-plugins-base 0 0:1.16.1-3.el8_6
Red Hat:rhel_tus:8.6::appstream gstreamer1-plugins-base-debuginfo 0 0:1.16.1-3.el8_6
Red Hat:rhel_tus:8.6::appstream gstreamer1-plugins-base-debugsource 0 0:1.16.1-3.el8_6
Red Hat:rhel_tus:8.6::appstream gstreamer1-plugins-base-devel 0 0:1.16.1-3.el8_6
Red Hat:rhel_tus:8.6::appstream gstreamer1-plugins-base-tools-debuginfo 0 0:1.16.1-3.el8_6
Rocky Linux:8 gstreamer1-plugins-base 0 0:1.16.1-5.el8_10
Rocky Linux:9 gstreamer1-plugins-base 0 0:1.22.1-3.el9_5
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS gstreamer-plugins-base 0 1.20.1-150400.3.11.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS gstreamer-plugins-base 0 1.20.1-150400.3.11.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS gstreamer-plugins-base 0 1.22.0-150500.3.11.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS gstreamer-plugins-base 0 1.22.0-150500.3.11.1
SUSE:Linux Enterprise Micro 5.3 gstreamer-plugins-base 0 1.20.1-150400.3.11.1
SUSE:Linux Enterprise Micro 5.4 gstreamer-plugins-base 0 1.20.1-150400.3.11.1
SUSE:Linux Enterprise Micro 5.5 gstreamer-plugins-base 0 1.22.0-150500.3.11.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 gstreamer-plugins-base 0 1.24.0-150600.3.8.1
SUSE:Linux Enterprise Module for Package Hub 15 SP6 gstreamer-plugins-base 0 1.24.0-150600.3.8.1
SUSE:Linux Enterprise Server 12 SP5-LTSS gstreamer-plugins-base 0 1.8.3-13.18.1
SUSE:Linux Enterprise Server 15 SP4-LTSS gstreamer-plugins-base 0 1.20.1-150400.3.11.1
SUSE:Linux Enterprise Server 15 SP5-LTSS gstreamer-plugins-base 0 1.22.0-150500.3.11.1
SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 gstreamer-plugins-base 0 1.8.3-13.18.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP4 gstreamer-plugins-base 0 1.20.1-150400.3.11.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP5 gstreamer-plugins-base 0 1.22.0-150500.3.11.1
SUSE:Manager Proxy 4.3 gstreamer-plugins-base 0 1.20.1-150400.3.11.1
SUSE:Manager Server 4.3 gstreamer-plugins-base 0 1.20.1-150400.3.11.1
Ubuntu:16.04:LTS gst-plugins-base0.10 0 No fix
Ubuntu:20.04:LTS gst-plugins-base1.0 0 1.16.3-0ubuntu1.4
Ubuntu:22.04:LTS gst-plugins-base1.0 0 1.20.1-1ubuntu0.4
Ubuntu:24.04:LTS gst-plugins-base1.0 0 1.24.2-1ubuntu0.2
Ubuntu:24.10 gst-plugins-base1.0 0 1.24.8-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.6 gstreamer-plugins-base 0 1.24.0-150600.3.8.1
openSUSE:Tumbleweed gstreamer-plugins-base 0 1.24.10-2.1

Related vulnerabilities