Cloudanix VulnDB

CVE-2024-47607

Critical · 9.8

CVSS

9.8

EPSS

1.2%

Published

Dec 12, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A bug in a popular media-handling library can let attackers take over systems that process specially crafted 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-based buffer overflow in gst_opus_dec_parse_header allows an attacker-supplied n_channels value greater than 64 to overwrite adjacent stack memory including the saved instruction pointer with GST_AUDIO_CHANNEL_POSITION_NONE values.

Why it matters to the business

Media-processing applications built on GStreamer can be crashed or used to execute attacker-controlled code when they decode untrusted Opus audio, potentially leading to service outages or full host compromise in pipelines that handle user-supplied media.

How an attack unfolds

An attacker supplies a crafted Opus stream whose header declares more than 64 channels; the vulnerable parse loop writes beyond the 64-byte pos array on the stack, corrupting the return address and allowing control-flow hijacking when the function returns.

How to fix it

Upgrade GStreamer to version 1.24.10 or apply commit 5be4b6f03689ab438822f6cfcd13f1f300afe203; rebuild and redeploy all dependent applications against the patched library.

How to confirm the fix worked

Confirm the installed GStreamer package reports version 1.24.10 or later; run unit tests with an Opus header containing n_channels=65 and verify the process no longer crashes or exhibits memory corruption.

Typical attack path

  1. Attacker creates or mutates an Opus file or stream with n_channels > 64
  2. Target application feeds the stream to a GStreamer pipeline containing the Opus decoder
  3. gst_opus_dec_parse_header is invoked during header parsing
  4. The loop writes GST_AUDIO_CHANNEL_POSITION_NONE past the end of the stack-allocated pos buffer
  5. Saved return address is overwritten, execution is redirected on function return

How to detect it

Monitor application and system logs for segmentation faults or crashes inside libgstreamer or gstopusdec during Opus decoding; inspect core dumps for overwritten stack frames near gst_opus_dec_parse_header; correlate with inbound media uploads containing Opus streams.

What your security team should do

  • Immediately update GStreamer to the fixed version in all build and deployment pipelines
  • Inventory applications that link against libgstreamer and schedule emergency patches
  • Add GStreamer version checks to continuous-integration and container-scanning processes
  • Block or sanitize untrusted Opus streams at ingestion points until patches are applied

The record

GStreamer is a library for constructing graphs of media-handling components. stack-buffer overflow has been detected in the gst_opus_dec_parse_header function within `gstopusdec.c'. The pos array is a stack-allocated buffer of size 64. If n_channels exceeds 64, the for loop will write beyond the boundaries of the pos array. The value written will always be GST_AUDIO_CHANNEL_POSITION_NONE. This bug allows to overwrite the EIP address allocated in the stack. 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
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.11-1.1

Related vulnerabilities