CVE-2023-37329
High · 8.8CVSS
8.8
EPSS
1.6%
Published
May 3, 2024
CISA due date
—
Cloudanix analysis
A problem in media software could let attackers take over computers by sending specially made subtitle files.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap-based buffer overflow in SRT subtitle parsing due to missing length validation of user data before copying into a heap buffer, enabling remote code execution within the affected process.
Why it matters to the business
Attackers can gain control of systems that process media files with GStreamer, risking unauthorized access, data theft, or service disruption across desktop and server environments that depend on this library.
How an attack unfolds
An attacker supplies a malicious SRT subtitle file with oversized data fields. When GStreamer parses the file during media playback or processing, the unchecked copy overflows the heap buffer and redirects execution to attacker-controlled code.
How to fix it
Upgrade GStreamer to the commit e2107f0a0fff902ac7f184bf96150cdc49ccf156 or later releases that contain the corrected SRT parsing logic.
How to confirm the fix worked
Confirm the presence of the fixed commit in the source tree or recompile and test SRT parsing with boundary-case subtitle files to verify the overflow is prevented.
Typical attack path
- Create a crafted SRT file containing excessive data lengths
- Deliver the file to a target application that uses GStreamer for subtitle handling
- Trigger SRT parsing through normal media operations
- Leverage the resulting heap overflow to execute arbitrary code
How to detect it
Inspect application and system logs for crashes or segmentation faults occurring during SRT subtitle parsing; correlate with file access events involving untrusted media.
What your security team should do
- Apply the GStreamer update to all affected installations without delay
- Inventory applications and services that depend on GStreamer for media handling
- Restrict untrusted SRT or subtitle sources until patches are deployed
- Monitor vendor advisories for any downstream package updates
The record
GStreamer SRT File Parsing Heap-based Buffer Overflow Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of GStreamer. Interaction with this library is required to exploit this vulnerability but attack vectors may vary depending on the implementation. The specific flaw exists within the parsing of SRT subtitle files. The issue results from the lack of proper validation of the length of user-supplied data prior to copying it to a heap-based buffer. An attacker can leverage this vulnerability to execute code in the context of the current process. Was ZDI-CAN-20968.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | gst-plugins-bad1.0 | 0 | 1.14.4-1+deb10u3 |
| Debian:11 | gst-plugins-bad1.0 | 0 | 1.18.4-3+deb11u1 |
| Debian:12 | gst-plugins-bad1.0 | 0 | 1.22.0-4+deb12u1 |
| Debian:13 | gst-plugins-bad1.0 | 0 | 1.22.4-1 |
| Mageia:9 | gstreamer1.0 | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-devtools | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-editing-services | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-libav | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-moodbar | 0 | 1.2.1-5.mga9 |
| Mageia:9 | gstreamer1.0-omx | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-bad | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-bad | 0 | 1.22.8-1.mga9.tainted |
| Mageia:9 | gstreamer1.0-plugins-base | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-good | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-ugly | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-ugly | 0 | 1.22.8-1.mga9.tainted |
| Mageia:9 | gstreamer1.0-python | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-rtsp-server | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-vaapi | 0 | 1.22.8-1.mga9 |
| SUSE:Enterprise Storage 7.1 | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.6.2 |
| SUSE:Enterprise Storage 7.1 | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | gstreamer-plugins-bad | 0 | 1.12.5-150000.3.9.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | gstreamer-plugins-bad | 0 | 1.16.3-150200.4.7.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.6.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.6.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.15.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP4 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.3.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | gstreamer-plugins-bad | 0 | 1.22.0-150500.3.3.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP4 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.3.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | gstreamer-plugins-bad | 0 | 1.22.0-150500.3.3.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP4 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.3.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP5 | gstreamer-plugins-bad | 0 | 1.22.0-150500.3.3.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | gstreamer-plugins-bad | 0 | 1.12.5-150000.3.9.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | gstreamer-plugins-bad | 0 | 1.16.3-150200.4.7.2 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.6.2 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | gstreamer-plugins-bad | 0 | 1.12.5-150000.3.9.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | gstreamer-plugins-bad | 0 | 1.16.3-150200.4.7.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.6.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.15.1 |
| SUSE:Manager Proxy 4.2 | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.6.2 |
| SUSE:Manager Server 4.2 | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.6.2 |
| Ubuntu:14.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:16.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:18.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:20.04:LTS | gst-plugins-bad1.0 | 0 | 1.16.3-0ubuntu1.1 |
| Ubuntu:22.04:LTS | gst-plugins-bad1.0 | 0 | 1.20.3-0ubuntu1.1 |
| Ubuntu:23.10 | gst-plugins-bad1.0 | 0 | 1.22.4-1ubuntu1.1 |
| Ubuntu:24.04:LTS | gst-plugins-bad1.0 | 0 | 1.22.4-1ubuntu1 |
| Ubuntu:Pro:14.04:LTS | gst-plugins-bad0.10 | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| openSUSE:Leap 15.4 | gstreamer-plugins-bad | 0 | 1.22.0-lp155.3.4.1 |
| openSUSE:Leap 15.5 | gstreamer-plugins-bad | 0 | 1.22.0-lp155.3.4.1 |
Related vulnerabilities
- CVE-2023-44446 GStreamer MXF File Parsing Use-After-Free Remote Code Execution Vulnerability. Also affects gst-plugins-bad1.0
- CVE-2023-40476 GStreamer H265 Parsing Stack-based Buffer Overflow Remote Code Execution Vulnerability. Also affects gst-plugins-bad1.0
- CVE-2023-40475 GStreamer MXF File Parsing Integer Overflow Remote Code Execution Vulnerability. Also affects gst-plugins-bad1.0
- CVE-2023-40474 GStreamer MXF File Parsing Integer Overflow Remote Code Execution Vulnerability. Also affects gst-plugins-bad1.0
- CVE-2024-0444 GStreamer AV1 Video Parsing Stack-based Buffer Overflow Remote Code Execution… Also affects gst-plugins-bad1.0
- CVE-2023-44429 GStreamer AV1 Codec Parsing Heap-based Buffer Overflow Remote Code Execution… Also affects gst-plugins-bad1.0
- CVE-2023-50186 GStreamer AV1 Video Parsing Stack-based Buffer Overflow Remote Code Execution… Also affects gst-plugins-bad1.0
- CVE-2024-47598 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1.0