Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2024-47778

CVE-2024-47778: GStreamer Use-After-Free Vulnerability

CVE-2024-47778 is a use-after-free vulnerability in GStreamer's wavparse component that allows out-of-bounds memory reads up to 4GB. This article covers the technical details, affected versions, and mitigation steps.

Published:

CVE-2024-47778 Overview

CVE-2024-47778 is an out-of-bounds read vulnerability in GStreamer, an open-source library for constructing graphs of media-handling components. The flaw resides in the gst_wavparse_adtl_chunk function within gstwavparse.c. The function fails to properly validate the size parameter against the bounds of the data buffer. An attacker can craft a malicious WAV file that triggers an OOB read inside the subsequent while loop. The condition can leak up to 4GB of process memory or cause a segmentation fault (SEGV) when invalid memory is accessed. GStreamer maintainers fixed the issue in version 1.24.10.

Critical Impact

A crafted WAV file processed by a vulnerable GStreamer build can leak adjacent process memory or crash the consuming application via segmentation fault.

Affected Products

  • GStreamer versions prior to 1.24.10
  • Linux distributions packaging affected GStreamer releases (Debian LTS impacted)
  • Applications and media frameworks linking the vulnerable wavparse plugin

Discovery Timeline

  • 2024-12-12 - CVE-2024-47778 published to NVD
  • 2026-06-17 - Last updated in NVD database

Technical Details for CVE-2024-47778

Vulnerability Analysis

The vulnerability is classified as an out-of-bounds read ([CWE-125]) in GStreamer's WAV parser. The gst_wavparse_adtl_chunk routine processes Associated Data List (adtl) chunks contained in WAV containers. The function reads a size value supplied by the input file and uses it to drive a loop that walks subordinate chunk entries. Because size is not constrained to the actual length of the data buffer, the loop iterator can advance past the end of allocated memory.

When GStreamer parses a crafted WAV file, the resulting OOB read can disclose process memory contents that follow the buffer in the heap. Attackers controlling input media can therefore leak sensitive runtime data such as pointers, configuration values, or fragments of other media buffers. If the read crosses an unmapped page boundary, the process terminates with a SEGV, producing a denial-of-service condition.

Root Cause

The root cause is missing bounds validation. The size field embedded in the adtl chunk header is consumed without comparison against the remaining length of the parent data buffer. The parser trusts attacker-controlled metadata to govern loop termination instead of using a buffer-relative offset check.

Attack Vector

Exploitation requires the victim to open or process a malicious WAV file using a vulnerable GStreamer build. The attack vector is local, since input must reach the parser through an application that uses GStreamer for media handling. Common delivery paths include desktop media players, thumbnailers, browsers, and server-side transcoding pipelines that ingest user-supplied audio.

No verified public proof-of-concept is available. Technical details are documented in the GStreamer Security Advisory SA-2024-0027 and GitHub Security Advisory GHSL-2024-258.

Detection Methods for CVE-2024-47778

Indicators of Compromise

  • Unexpected crashes or SEGV signals in processes loading the GStreamer wavparse plugin
  • WAV files originating from untrusted sources containing oversized adtl chunk size fields
  • Core dumps referencing gst_wavparse_adtl_chunk in the call stack

Detection Strategies

  • Inventory installed GStreamer versions across endpoints and servers, flagging builds prior to 1.24.10
  • Inspect media-processing services for abnormal child process terminations correlated with WAV input
  • Use file-format inspection tools to validate adtl chunk size fields against actual buffer length before processing

Monitoring Recommendations

  • Monitor process termination and crash telemetry from media players, transcoders, and thumbnailing services
  • Forward GStreamer application logs to a centralized analytics platform for correlation with file-upload events
  • Track package manager events for GStreamer updates to confirm patch deployment status

How to Mitigate CVE-2024-47778

Immediate Actions Required

  • Upgrade GStreamer to version 1.24.10 or later on all affected systems
  • Apply distribution updates such as the Debian LTS announcement where applicable
  • Restrict processing of WAV files originating from untrusted sources until patches are deployed

Patch Information

The upstream fix is available in GStreamer 1.24.10 and is published as a merge request: GitLab Merge Request 8042. The patch adds bounds validation so the size parameter cannot exceed the remaining buffer length. Vendor guidance is available in GStreamer Security Advisory SA-2024-0027.

Workarounds

  • Disable or unload the GStreamer wavparse plugin where WAV processing is not required
  • Sandbox media-processing services using seccomp, AppArmor, or SELinux to limit memory disclosure impact
  • Pre-filter incoming WAV files through a hardened validator that checks adtl chunk sizes before passing them to GStreamer
bash
# Configuration example
# Verify installed GStreamer version meets the patched baseline
gst-inspect-1.0 --version

# Debian/Ubuntu: apply distribution updates containing the fix
sudo apt update && sudo apt upgrade gstreamer1.0-plugins-good

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.