CVE-2026-48793: Jellyfin Unauthenticated Argument Injection via Subtitle Conversion
Jellyfin, a self-hosted media server, contains a vulnerability in how it processes subtitle files before sending them to FFmpeg for conversion. An attacker who can upload or place a malicious subtitle file in a Jellyfin media library can inject commands into the FFmpeg process, potentially reading sensitive files from the server or overwriting files. The vulnerability is particularly dangerous because it doesn't require authentication—anyone with network access can trigger it. Jellyfin versions prior to 10.11.10 are affected.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 8.8 HIGH · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Weaknesses (CWE)
- CWE-88
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-06-26
NVD description (verbatim)
Jellyfin is an open source self hosted media server. Prior to 10.11.10, a potential FFmpeg argument injection vulnerability exists in the subtitle conversion code path. SubtitleEncoder.ConvertTextSubtitleToSrtInternal (SubtitleEncoder.cs, line 382) interpolates the subtitle file path into FFmpeg command-line arguments without calling EncodingUtils.NormalizePath(). On Linux, filenames can contain double-quote characters, which break the argument quoting and allow injection of arbitrary FFmpeg arguments. The vulnerability is reachable without authentication via SubtitleController.GetSubtitle, which has no [Authorize] attribute. An attacker who can place a file in a Jellyfin media library directory (shared NAS, Samba share, guest upload) can achieve arbitrary file write on the server and information disclosure. This vulnerability is fixed in 10.11.10.
1 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-48793 is an argument injection vulnerability in Jellyfin's SubtitleEncoder.ConvertTextSubtitleToSrtInternal method (SubtitleEncoder.cs, line 382). The code constructs FFmpeg command-line arguments by interpolating a subtitle file path without calling EncodingUtils.NormalizePath(), which is the function responsible for safe path escaping. On Linux systems, where filenames can contain unescaped double-quote characters, an attacker can craft a subtitle filename that breaks out of the argument quoting context and inject arbitrary FFmpeg arguments. The vulnerable endpoint SubtitleController.GetSubtitle lacks an [Authorize] attribute, making it accessible without authentication. FFmpeg's extensive command-line interface then allows arbitrary file operations including write and information disclosure.
Business impact
A successful exploit grants an attacker the ability to read arbitrary files from the Jellyfin server (including configuration, private keys, or other sensitive data stored locally) and to write or overwrite files on the host system. For organizations running Jellyfin in production—particularly those hosting on shared infrastructure or with untrusted users who can contribute media files—this represents a severe operational and confidentiality risk. If the Jellyfin process runs with elevated privileges, the impact extends to the underlying system.
Affected systems
Jellyfin versions prior to 10.11.10 are vulnerable. The issue affects all operating systems where Jellyfin runs, but the injection mechanism is most reliably exploited on Linux due to its permissive filename handling. The vulnerability is reachable without authentication, making it relevant to any Jellyfin instance accessible over the network, regardless of internal access controls.
Exploitability
The attack is straightforward to execute. An attacker needs only the ability to place or upload a file into a Jellyfin media library directory (such as a shared NAS, Samba share, guest upload folder, or any directory Jellyfin monitors for media). They then trigger subtitle conversion by requesting the file via the unauthenticated GetSubtitle endpoint. No special tools, kernel exploits, or complex interaction is required. The lack of authentication and the direct network reachability of the vulnerable endpoint make this a practical attack vector.
Remediation
Immediately upgrade Jellyfin to version 10.11.10 or later. This release patches SubtitleEncoder to properly normalize subtitle file paths using EncodingUtils.NormalizePath() before passing them to FFmpeg. Additionally, restrict filesystem write permissions for the Jellyfin process to the minimum necessary directories, implement network-level access controls to limit who can reach Jellyfin's HTTP endpoints, and audit media library shares to remove or quarantine any untrusted or guest-accessible upload paths.
Patch guidance
Upgrade to Jellyfin 10.11.10 as soon as possible. For organizations unable to patch immediately, disable or remove guest upload functionality from media library paths and restrict network access to the Jellyfin server to trusted users only. Monitor Jellyfin logs for unusual subtitle conversion requests or FFmpeg argument errors, which may indicate exploitation attempts.
Detection guidance
Hunt for HTTP requests to SubtitleController.GetSubtitle endpoints that reference subtitle files with suspicious filenames containing double-quote characters or shell metacharacters. Monitor FFmpeg process execution on Jellyfin servers for unexpected arguments or suspicious file operations (reads from /etc, /root, ~/.ssh, or writes outside expected media directories). Check Jellyfin logs for conversion errors or failed FFmpeg invocations. On shared storage systems, audit media library directories for files with names designed to break argument quoting (e.g., containing quotes, backticks, or unusual characters).
Why prioritize this
This vulnerability merits immediate attention due to its combination of high impact (arbitrary file read and write), ease of exploitation (no authentication, simple file placement), and broad reachability (network-accessible, unauthenticated endpoint). Organizations running Jellyfin with network exposure should treat this as a critical priority. The vulnerability is not yet in the CISA KEV catalog, but its practical exploitability and the open-source nature of Jellyfin mean exploit code could emerge rapidly.
Risk score, explained
The CVSS 3.1 score of 8.8 (HIGH) reflects high impact (confidentiality, integrity, and availability all rated High), low attack complexity, network reachability, low privileges required, and no user interaction. The score accurately captures the severity: unauthenticated attackers can execute arbitrary code-like operations (via FFmpeg) with file system consequences. The main factor preventing a critical score is that successful exploitation still depends on the attacker's ability to place a file in the media library, though this is often feasible in shared or guest-accessible environments.
Frequently asked questions
Can this vulnerability be exploited remotely without any local file access?
No, the attacker must be able to place or upload a subtitle file into a Jellyfin media library directory. However, if the Jellyfin server uses a shared NAS, Samba share, or guest upload directory, an attacker may be able to do this remotely. Additionally, attackers with read access to media directories (via SMB, NFS, or other sharing protocols) can place malicious files without going through Jellyfin's UI.
Do I need to worry about this if I don't allow subtitle uploads or if my library is read-only?
Your risk is reduced but not eliminated. If your media library is on a shared filesystem that untrusted users can write to (even indirectly), or if you use automated tools to sync media files, an attacker could still introduce a malicious subtitle file. Additionally, existing subtitle files already in your library could be renamed or replaced. Patching remains the safest course of action.
What versions of Jellyfin are affected?
All versions prior to 10.11.10 are vulnerable. You should verify your current version in Jellyfin's admin dashboard (Settings > Dashboard > About) and upgrade immediately if you are below 10.11.10.
Could an attacker use this to execute arbitrary code directly?
Not directly through arbitrary shell commands, but they can invoke FFmpeg with arbitrary arguments, which is nearly equivalent. FFmpeg supports reading and writing files, format conversion that may trigger buffer overflows in downstream tools, and other operations that can lead to information disclosure or system compromise. In practical terms, treat this as a severe code execution risk.
This analysis is provided for informational and defensive purposes. The vulnerability details and exploitation techniques described here are based on the CVE description and CVSS assessment; actual exploitation outcomes may vary depending on system configuration, file permissions, and network isolation. Organizations should perform their own risk assessment and testing before and after patching. This page does not constitute security advice and does not replace vendor advisories or professional security consultation. Always verify patch availability and compatibility with your deployment before applying updates. Source: NVD (public-domain), retrieved 2026-08-02. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2024-52011HIGHCommand Injection in launch-editor via Malicious Filenames on Windows
- CVE-2026-11332HIGHAnsible-Core Arbitrary Code Execution via Role Injection
- CVE-2026-12530HIGHAWS Bedrock AgentCore SDK Command Injection – Exploit Details & Patch Guidance
- CVE-2026-41013HIGHCloud Foundry Diego SMB Mount Input Validation Bypass (CVSS 8.1)
- CVE-2026-44790HIGHn8n Git Node Command Injection – Patching Guidance
- CVE-2026-46529HIGHAtril Remote Code Execution via Malicious PDF Links
- CVE-2026-48116HIGHAnythingLLM Command Injection via Ripgrep Abuse
- CVE-2026-49373HIGHTeamCity Perforce RCE – Patch to 2026.1