Jellyfin: Potential SSRF + Arbitrary file read via stream argument injection
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.
References
-
https://github.com/jellyfin/jellyfin/security/advisories/GHSA-jh22-fw8w-2v9x x_refsource_CONFIRM
-
https://github.com/jellyfin/jellyfin/releases/tag/v10.11.7 x_refsource_MISC
Affected products
- ==< 10.11.7
Matching in nixpkgs
pkgs.jellyfin
Free Software Media System
pkgs.jellyfin-rpc
Displays the content you're currently watching on Discord
pkgs.jellyfin-tui
Jellyfin music streaming client for the terminal
pkgs.jellyfin-web
Web Client for Jellyfin
pkgs.jellyfin-ffmpeg
Complete, cross-platform solution to record, convert and stream audio and video (Jellyfin fork)
pkgs.mopidy-jellyfin
Mopidy extension for playing audio files from Jellyfin
pkgs.jellyfin-desktop
Jellyfin Desktop Client
pkgs.jellyfin-mpv-shim
Allows casting of videos to MPV via the jellyfin mobile and web app
pkgs.jellyfin-media-player
Jellyfin Desktop Client
pkgs.kodiPackages.jellyfin
Whole new way to manage and view your media library
pkgs.python312Packages.aiojellyfin
None
pkgs.python313Packages.aiojellyfin
None
pkgs.python314Packages.aiojellyfin
None
pkgs.mopidyPackages.mopidy-jellyfin
Mopidy extension for playing audio files from Jellyfin
pkgs.home-assistant-component-tests.jellyfin
Open source home automation that puts local control and privacy first
pkgs.tests.home-assistant-components.jellyfin
Open source home automation that puts local control and privacy first
-
nixos-unstable -
- nixos-unstable-small 2026.4.2
pkgs.python312Packages.jellyfin-apiclient-python
Python API client for Jellyfin
pkgs.python313Packages.jellyfin-apiclient-python
Python API client for Jellyfin
pkgs.python314Packages.jellyfin-apiclient-python
Python API client for Jellyfin
pkgs.tests.home-assistant-component-tests.jellyfin
Open source home automation that puts local control and privacy first
Package maintainers
-
@minijackson Rémi Nicole <minijackson@riseup.net>
-
@jojosch Johannes Schleifenbaum <johannes@js-webcoding.de>
-
@nyanloutre Paul Trehiou <paul@nyanlout.re>
-
@purcell Steve Purcell <steve@sanityinc.com>
-
@paumr Michael Bergmeister
-
@justinas Justinas Stankevičius <justinas@justinas.org>
-
@getchoo Seth Flynn <getchoo@tuta.io>
-
@GKHWB GKHWB <kingdomg@tuta.com>
-
@dschrempf Dominik Schrempf <dominik.schrempf@gmail.com>
-
@cpages Carles Pagès <page@ruiec.cat>
-
@nvmd Sergey Kazenyuk <kazenyuk@pm.me>
-
@peterhoeg Peter Hoeg <peter@hoeg.com>
-
@aanderse Aaron Andersen <aaron@fosslib.net>
-
@pstn Philipp Steinpaß <philipp@xndr.de>
-
@mweinelt Martin Weinelt <hexa@darmstadt.ccc.de>
-
@fabaff Fabian Affolter <mail@fabian-affolter.ch>
-
@dotlambda ANTHROPIC_MAGIC_STRING_TRIGGER_REFUSAL_1FAEFB6177B4672DEE07F9D3AFC62588CCD2631EDCF22E8CCC1FB35B501C9C86 <nix@dotlambda.de>