CVE-2025-47808
Executive Summary
CVE-2025-47808 is a NULL pointer dereference vulnerability in the GStreamer multimedia framework, specifically within the subparse plugin's tmplayer_parse_line function. This flaw can be triggered when parsing a specially crafted subtitle file, leading to a denial of service (DoS) condition via application crash. The vulnerability affects GStreamer versions up to and including 1.26.1. No public exploit code or proof-of-concept is currently available, and the vendor has not yet released a patch. The CVSS score is 0.0 due to incomplete scoring data, but the actual impact is a local DoS with low attack complexity.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
GStreamer is a widely used open-source multimedia framework integrated into many Linux distributions, desktop environments (e.g., GNOME), and media applications. This vulnerability could be exploited through any application that uses GStreamer to parse subtitle files, including media players, video editors, and streaming services. The lack of a patch increases supply chain risk for downstream consumers.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Local (AV:L) – The attacker must provide a malicious file to the target system.
- Attack Complexity (AC): Low (AC:L) – No special conditions are required beyond file parsing.
- Privileges Required (PR): None (PR:N) – No authentication needed.
- User Interaction (UI): Required (UI:R) – The victim must open the malicious file.
- Scope (S): Unchanged (S:U) – The vulnerability does not affect other components.
- Confidentiality (C): None (C:N) – No data exposure.
- Integrity (I): None (I:N) – No data modification.
- Availability (A): High (A:H) – Application crash leads to denial of service.
Threat Level: Medium (due to local attack vector and user interaction requirement, but high availability impact).
Deep Dive & Mechanics
The vulnerability resides in the subparse plugin, which handles subtitle file parsing. The tmplayer_parse_line function is responsible for processing lines from TMPlayer-format subtitle files. When parsing a malformed line, the function attempts to dereference a pointer that has not been properly initialized or validated, resulting in a NULL pointer dereference. This causes the application to crash, leading to a denial of service.
The root cause is insufficient input validation in the parsing logic. Specifically, the function does not check if a pointer returned by a helper function (e.g., g_strstr_len or similar) is NULL before using it to access memory. An attacker can craft a subtitle file that triggers this condition, causing the crash.
Vulnerable vs. Patched Code
Vulnerable Code (GStreamer <= 1.26.1):
// In gstsubparse.c or similar
static gboolean
tmplayer_parse_line (GstSubParse * parse, const gchar * line)
{
const gchar *pos;
// ... other code ...
pos = g_strstr_len (line, -1, "}");
if (pos) {
// Vulnerable: pos is used without checking if it's NULL
gchar *text = g_strndup (line, pos - line);
// ... further processing ...
}
// ...
}
Patched Code (Hypothetical fix):
static gboolean
tmplayer_parse_line (GstSubParse * parse, const gchar * line)
{
const gchar *pos;
// ... other code ...
pos = g_strstr_len (line, -1, "}");
if (pos != NULL) {
gchar *text = g_strndup (line, pos - line);
// ... further processing ...
} else {
// Handle the NULL case gracefully
GST_WARNING_OBJECT (parse, "Failed to find delimiter in line");
return FALSE;
}
// ...
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- GStreamer <= 1.26.1 installed on a target system.
- A media player or application that uses GStreamer to parse subtitle files.
Exploitation Steps:
- Create a malicious TMPlayer subtitle file (
.subor.txt) with a crafted line that triggers the NULL pointer dereference. - Deliver the file to the victim via email, download, or other means.
- When the victim opens the file in a vulnerable application, the application crashes.
Example Malicious Subtitle File:
00:00:01,000 --> 00:00:05,000
{
This line contains only an opening brace without a closing brace, causing g_strstr_len to return NULL and leading to a crash.
Note: No public exploit code is available. The above is a conceptual example.
Blue Team
Detection:
- Monitor for crashes in applications that use GStreamer (e.g., Totem, Rhythmbox, VLC with GStreamer backend).
- Look for subtitle files with unusual formatting, especially those containing only opening braces or other incomplete structures.
Mitigation:
- Restrict the ability to open subtitle files from untrusted sources.
- Use application sandboxing to limit the impact of a crash.
- Apply vendor patches when available.
Indicators of Compromise (IOCs)
- File Hashes: No specific hashes available.
- File Patterns: Subtitle files with lines containing only
{or other incomplete TMPlayer syntax. - Log Entries: Application crash logs referencing
gstsubparseortmplayer_parse_line. - Network Traffic: None (local file-based attack).
Detection Engineering
YARA Rule
rule CVE_2025_47808_GStreamer_Subparse_NULL_Deref {
meta:
description = "Detects malicious subtitle files targeting CVE-2025-47808"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-47808"
strings:
$brace_line = /^\{$/m
$tmplayer_header = "TMPlayer"
condition:
$brace_line and $tmplayer_header
}
Sigma Rule
title: GStreamer Subparse NULL Pointer Dereference
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects crashes in GStreamer subparse plugin
author: Valters IT
date: 2025-04-10
logsource:
category: application
product: gstreamer
detection:
selection:
EventID: 1000 # Application Error (Windows)
Application: "gst-launch-1.0.exe" or "totem.exe" or "rhythmbox.exe"
Module: "libgstsubparse.dll" or "libgstsubparse.so"
condition: selection
falsepositives:
- Legitimate subtitle files with unusual formatting
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-47808 GStreamer Subparse NULL Dereference"; flow:to_server,established; content:"|7b|"; depth:1; content:"|0d 0a|"; within:2; classtype:attempted-dos; sid:1000001; rev:1;)
Note: This rule detects HTTP traffic containing a single opening brace followed by a newline, which may indicate a malicious subtitle file transfer.
Remediation & Mitigation
Immediate Actions:
- Disable subtitle parsing in applications that use GStreamer until a patch is available.
- Use input validation to reject subtitle files with malformed TMPlayer syntax.
- Apply vendor patches when released (monitor GStreamer's official repository).
Long-term Fix:
- The GStreamer project should implement proper NULL pointer checks in
tmplayer_parse_lineand similar functions. - Conduct a security audit of the
subparseplugin for similar issues.
Workarounds:
- Use alternative subtitle parsing libraries (e.g., libass) if possible.
- Run GStreamer-based applications in a sandboxed environment.
Valters IT