Jellyfin is an open source self hosted media server. Versions prior to 10.11.7 contain an unauthenticated arbitrary file read vulnerability via ffmpeg argument injection through the StreamOptions query parameter parsing mechanism. The ParseStreamOptions method in StreamingHelpers.cs adds any lowercase query parameter to a dictionary without validation, bypassing the RegularExpression attribute on the level controller parameter, and the unsanitized value is concatenated directly into the ffmpeg command line. By injecting a drawtext filter with a textfile argument, an attacker can read arbitrary server files such as /etc/shadow and exfiltrate their contents as text rendered in the video stream response. The vulnerable /Videos/{itemId}/stream endpoint has no Authorize attribute, making this exploitable without authentication, though item GUIDs are pseudorandom and require an authenticated user to obtain. This issue has been fixed in version 10.11.7.
The ParseStreamOptions method in StreamingHelpers.cs adds all query parameters stored in lowercase letters to a dictionary without any validation, bypassing the RegularExpression attribute applied to the controller parameter. The unverified value is then directly concatenated into the ffmpeg command executed by the server. An attacker can inject a drawtext filter with a textfile argument pointing to any system file, and its contents will be rendered as text in the video stream response. The vulnerable /Videos/{itemId}/stream endpoint does not have an Authorize attribute, however obtaining the GUID identifier of the element requires prior authentication.
An attacker can read and exfiltrate arbitrary files accessible to the server process, including sensitive system files such as /etc/shadow, which could lead to further system compromise. Private keys, configurations and other sensitive data can also be read.
Jellyfin should be updated to version 10.11.7, where the issue has been fixed. Patches are available in the vendor's official repository: https://github.com/jellyfin/jellyfin/releases/tag/v10.11.7
Jellyfin versions earlier than 10.11.7
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XJellyfin
APPJellyfin< 10.11.7
Related vulnerabilities
Jellyfin: RCE jako root przez path traversal w endpoincie przesyłania napisów
Krytyczna podatność RCE w workflow GitHub Actions Jellyfin iOS
Stored XSS w Jellyfin Web umożliwiający RCE z uprawnieniami admina
Jellyfin is an open source self hosted media server. Versions prior to 10.11.7 contain a vulnerability chain i...
Jellyfin is an open source self hosted media server. Versions before 10.10.7 are vulnerable to argument inject...