CVE-2024-47777
Critical · 9.1CVSS
9.1
EPSS
1.2%
Published
Dec 12, 2024
CISA due date
—
Cloudanix analysis
A media-processing library can read a few bytes past the end of a sound-file buffer, which may make programs crash or leak tiny amounts of data when they open certain audio files.
- 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
Out-of-bounds read of 4 bytes in gst_wavparse_smpl_chunk caused by reading from data+12 without verifying the input buffer length in the WAV parser.
Why it matters to the business
Applications that process untrusted media files may crash or leak small amounts of adjacent memory, disrupting media pipelines and requiring urgent patching of a widely used library.
How an attack unfolds
An attacker supplies a specially crafted WAV file whose smpl chunk has a data buffer smaller than 16 bytes; when the parser reaches gst_wavparse_smpl_chunk it performs an unchecked read past the allocation, resulting in memory corruption.
How to fix it
Upgrade GStreamer to the fixed commit 5be4b6f03689ab438822f6cfcd13f1f300afe203 (equivalent to release 1.24.10) or later; rebuild and redeploy all dependent applications and containers.
How to confirm the fix worked
Confirm the running GStreamer version reports 1.24.10 or newer; recompile with the patch and verify that a minimal malformed WAV no longer triggers the read beyond the buffer.
Typical attack path
- Deliver a malicious WAV file to any GStreamer-based media handler
- Trigger parsing of the smpl chunk via normal file open or decode operations
- Cause the out-of-bounds read at offset +12 inside gst_wavparse_smpl_chunk
- Observe crash, information disclosure, or continued execution with corrupted state
How to detect it
Look for segmentation faults or memory-access violations in processes that use libgstreamer while handling WAV files; correlate with file-open events for recently received media.
What your security team should do
- Immediately update all GStreamer installations to the patched commit or 1.24.10
- Scan build pipelines and container images for the vulnerable library version
- Add automated regression tests that feed malformed WAV files to the parser
- Monitor for application crashes during media ingestion until patching is complete
The record
GStreamer is a library for constructing graphs of media-handling components. An OOB-read vulnerability has been identified in the gst_wavparse_smpl_chunk function within gstwavparse.c. This function attempts to read 4 bytes from the data + 12 offset without checking if the size of the data buffer is sufficient. If the buffer is too small, the function reads beyond its bounds. This vulnerability may result in reading 4 bytes out of the boundaries of the data buffer. 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 |
| 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
- CVE-2024-47834 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47774 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47775 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47778 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47776 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47603 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47606 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47613 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good