Cloudanix VulnDB

CVE-2024-47545

High · 7.5

CVSS

7.5

EPSS

1.1%

Published

Dec 12, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A bug in the GStreamer media library can let specially made video files cause the program to read outside its allowed memory area, potentially crashing it or leaking information.

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

What it actually does

Integer underflow in qtdemux_parse_trak during strf box parsing allows size to become negative after subtracting 40, causing gst_buffer_fill to perform an oversized memcpy that results in an out-of-bounds read.

Why it matters to the business

Applications that process untrusted MP4 or QuickTime media with GStreamer can crash or leak memory contents, disrupting media pipelines and potentially exposing sensitive data from the process address space.

How an attack unfolds

An attacker crafts a specially malformed MP4 file containing a strf box whose size field is smaller than 40 bytes. When GStreamer parses the trak atom, the underflow produces a large tocopy value passed to gst_buffer_fill, triggering an out-of-bounds read that may crash the process or disclose memory.

How to fix it

Upgrade gstreamer to version 1.24.10 or apply commit 5be4b6f03689ab438822f6cfcd13f1f300afe203. Rebuild and redeploy all dependent applications after the update.

How to confirm the fix worked

Confirm the installed GStreamer version is at least 1.24.10, run regression tests with crafted MP4 files containing undersized strf boxes, and verify absence of crashes or sanitizer violations during parsing.

Typical attack path

  1. Attacker creates MP4 file with undersized strf box inside trak atom
  2. Victim application opens the file using GStreamer qtdemux
  3. qtdemux_parse_trak subtracts 40 from size yielding negative value
  4. gst_buffer_fill is called with oversized tocopy argument
  5. memcpy performs out-of-bounds read leading to crash or data leak

How to detect it

Review application logs for segmentation faults or GLib/GStreamer critical errors during MP4 demuxing, inspect core dumps for memcpy-related crashes in qtdemux, and correlate file-processing timestamps with abnormal memory access events.

What your security team should do

  • Immediately upgrade all GStreamer installations to 1.24.10 or later
  • Add the fixed commit hash to internal dependency scanning rules
  • Block or sanitize untrusted MP4/QuickTime files at ingestion points until patched
  • Monitor for crashes in media-processing services that use qtdemux

The record

GStreamer is a library for constructing graphs of media-handling components. An integer underflow has been detected in qtdemux_parse_trak function within qtdemux.c. During the strf parsing case, the subtraction size -= 40 can lead to a negative integer overflow if it is less than 40. If this happens, the subsequent call to gst_buffer_fill will invoke memcpy with a large tocopy size, resulting in an OOB-read. This vulnerability is fixed in 1.24.10.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:9 gstreamer1-plugins-good 0 1.22.12-4.el9
AlmaLinux:9 gstreamer1-plugins-good-gtk 0 1.22.12-4.el9
Chainguard openjdk-11-openj9 0 0.53.0-r0
Chainguard openjdk-11-openj9-dbg 0 0.53.0-r0
Chainguard openjdk-11-openj9-default-jdk 0 0.53.0-r0
Chainguard openjdk-11-openj9-default-jvm 0 0.53.0-r0
Chainguard openjdk-11-openj9-default-policy 0 0.53.0-r0
Chainguard openjdk-11-openj9-doc 0 0.53.0-r0
Chainguard openjdk-11-openj9-jmods 0 0.53.0-r0
Chainguard openjdk-11-openj9-jre 0 0.53.0-r0
Chainguard openjdk-17-openj9 0 0.53.0-r0
Chainguard openjdk-17-openj9-dbg 0 0.53.0-r0
Chainguard openjdk-17-openj9-default-jdk 0 0.53.0-r0
Chainguard openjdk-17-openj9-default-jvm 0 0.53.0-r0
Chainguard openjdk-17-openj9-default-policy 0 0.53.0-r0
Chainguard openjdk-17-openj9-doc 0 0.53.0-r0
Chainguard openjdk-17-openj9-jmods 0 0.53.0-r0
Chainguard openjdk-17-openj9-jre 0 0.53.0-r0
Chainguard openjdk-21-openj9 0 0.53.0-r0
Chainguard openjdk-21-openj9-dbg 0 0.53.0-r0
Chainguard openjdk-21-openj9-default-jdk 0 0.53.0-r0
Chainguard openjdk-21-openj9-default-jvm 0 0.53.0-r0
Chainguard openjdk-21-openj9-default-policy 0 0.53.0-r0
Chainguard openjdk-21-openj9-doc 0 0.53.0-r0
Chainguard openjdk-21-openj9-jmods 0 0.53.0-r0
Chainguard openjdk-21-openj9-jre 0 0.53.0-r0
Chainguard openjdk-8-openj9 0 0.53.0-r1
Chainguard openjdk-8-openj9-dbg 0 0.53.0-r1
Chainguard openjdk-8-openj9-default-jdk 0 0.53.0-r1
Chainguard openjdk-8-openj9-default-jvm 0 0.53.0-r1
Chainguard openjdk-8-openj9-doc 0 0.53.0-r1
Chainguard openjdk-8-openj9-jre 0 0.53.0-r1
Debian:11 gst-plugins-good1.0 0 No fix
Debian:11 gst-plugins-good1.0 0 1.18.4-2+deb11u3
Debian:12 gst-plugins-good1.0 0 1.22.0-5+deb12u2
Debian:13 gst-plugins-good1.0 0 1.24.10-1
Debian:14 gst-plugins-good1.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
SUSE:Enterprise Storage 7.1 gstreamer-plugins-good 0 1.16.3-150200.3.17.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS gstreamer-plugins-good 0 1.16.3-150200.3.17.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS gstreamer-plugins-good 0 1.20.1-150400.3.9.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS gstreamer-plugins-good 0 1.20.1-150400.3.9.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS gstreamer-plugins-good 0 1.22.0-150500.4.6.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS gstreamer-plugins-good 0 1.22.0-150500.4.6.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 gstreamer-plugins-good 0 1.24.0-150600.3.3.1
SUSE:Linux Enterprise Server 12 SP5-LTSS gstreamer-plugins-good 0 1.8.3-16.12.1
SUSE:Linux Enterprise Server 15 SP3-LTSS gstreamer-plugins-good 0 1.16.3-150200.3.17.1
SUSE:Linux Enterprise Server 15 SP4-LTSS gstreamer-plugins-good 0 1.20.1-150400.3.9.1
SUSE:Linux Enterprise Server 15 SP5-LTSS gstreamer-plugins-good 0 1.22.0-150500.4.6.1
SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 gstreamer-plugins-good 0 1.8.3-16.12.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP3 gstreamer-plugins-good 0 1.16.3-150200.3.17.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP4 gstreamer-plugins-good 0 1.20.1-150400.3.9.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP5 gstreamer-plugins-good 0 1.22.0-150500.4.6.1
SUSE:Linux Enterprise Workstation Extension 15 SP6 gstreamer-plugins-good 0 1.24.0-150600.3.3.1
SUSE:Manager Proxy 4.3 gstreamer-plugins-good 0 1.20.1-150400.3.9.1
SUSE:Manager Server 4.3 gstreamer-plugins-good 0 1.20.1-150400.3.9.1
Ubuntu:16.04:LTS gst-plugins-good0.10 0 No fix
Ubuntu:20.04:LTS gst-plugins-good1.0 0 1.16.3-0ubuntu1.3
Ubuntu:22.04:LTS gst-plugins-good1.0 0 1.20.3-0ubuntu1.3
Ubuntu:24.04:LTS gst-plugins-good1.0 0 1.24.2-1ubuntu1.1
Ubuntu:24.10 gst-plugins-good1.0 0 1.24.8-1ubuntu1.1
Ubuntu:Pro:16.04:LTS gst-plugins-good0.10 0 No fix
Ubuntu:Pro:16.04:LTS gst-plugins-good1.0 0 No fix
Ubuntu:Pro:18.04:LTS gst-plugins-good1.0 0 No fix
openSUSE:Leap 15.6 gstreamer-plugins-good 0 1.24.0-150600.3.3.1

Related vulnerabilities