CVE-2025-58763
WysokieCVSS 8.0Prawdopodobieństwo exploitacji (EPSS)
Wysokie ryzykoPercentyl 77 - wyżej niż 77% wszystkich znanych CVE
Streszczenie
Tautulli w wersji 2.15.3 i wcześniejszych zawiera podatność na wstrzyknięcie poleceń, która pozwala atakującym z uprawnieniami administracyjnymi na zdalne wykonanie kodu na serwerze aplikacji. Podatność występuje, gdy aplikacja została sklonowana z GitHub i zainstalowana ręcznie, ponieważ funkcja `runGit` w `versioncheck.py` używa `shell=True` w `subprocess.Popen`, a dane wejściowe użytkownika (remote i branch) nie są sanityzowane. Poprawka znajduje się w wersji 2.16.0.
Ocena ryzyka
Administrator lub atakujący z uprawnieniami administracyjnymi może wykonać dowolne polecenia systemowe, przejmując kontrolę nad serwerem Tautulli i potencjalnie całym systemem.
Rekomendacja
Zaktualizuj Tautulli do wersji 2.16.0 lub nowszej. Ogranicz uprawnienia administracyjne do niezbędnego minimum.
Inne podatności w Tautulli
Zobacz wszystkie- CVE-2026-43986Krytyczne
Tautulli w wersjach przed 2.17.1 udostępnia publiczną ścieżkę `/image/<hash>`, która rozwiązuje wpisy kontrolowane przez atakującego z tabeli `image_hash_lookup` i odtwarza je przez logikę pobierania obrazów po stronie serwera. Niskouprzywilejowany użytkownik gościa może umieścić złośliwy zewnętrzny adres URL obrazu w tej tabeli, a następnie wywołać pobieranie po stronie serwera przez w pełni nieuwierzytelniony punkt końcowy, co zamienia uwierzytelnioną podatność SSRF w trwały, nieuwierzytelniony gadżet SSRF.
- CVE-2025-58762Krytyczne
W Tautulli w wersji 2.15.3 i wcześniejszych osoba z uprawnieniami administracyjnymi może wykorzystać endpoint `pms_image_proxy` do zapisania dowolnych skryptów Pythona w systemie plików aplikacji. Poprzez zmianę adresu URL serwera PMS na kontrolowany przez siebie serwer i manipulację parametrami `img` oraz `img_format` (z użyciem path traversal) atakujący zapisuje złośliwy plik, a następnie uruchamia go przez wbudowanego agenta powiadomień `Script`, co prowadzi do zdalnego wykonania kodu.
- CVE-2026-54915Średnie
W Tautulli przed wersją 2.17.2 nieuwierzytelniony endpoint /auth/redirect usuwa ukośniki z parametru redirect_uri, ale pozostawia znaki tabulacji, nowej linii i powrotu karetki. Przy domyślnej konfiguracji HTTP_ROOT pozwala to przekierować użytkownika na zewnętrzną domenę kontrolowaną przez atakującego.
- CVE-2026-52835Wysokie
Tautulli przed wersją 2.17.2 w handlerze import_config oraz w gałęzi database_file funkcji import_database łączy kontrolowaną przez atakującego nazwę pliku bezpośrednio z CACHE_DIR bez redukcji do basename ani sprawdzenia zawierania ścieżki. Administrator lub wywołujący z kluczem API instancji może przesłać nazwę pliku zawierającą segmenty katalogu nadrzędnego, powodując zapis lub nadpisanie pliku poza CACHE_DIR.
- CVE-2026-49995Średnie
W Tautulli przed wersją 2.17.2 pole cron newslettera jest wstawiane do łańcucha JavaScript bez bezpiecznego kodowania JSON. Administrator lub osoba z kluczem API Tautulli może zapisać spreparowaną wartość cron, która wykona skrypt w kontekście webowym Tautulli, gdy administrator otworzy okno konfiguracji newslettera.
- CVE-2026-45381Średnie
W Tautulli przed wersją 2.17.2 endpoint /search wstawia kontrolowany przez użytkownika parametr zapytania do łańcucha JavaScript z ręcznym escapowaniem, które nie obsługuje odwrotnych ukośników. Sekwencja odwrotny ukośnik-cudzysłów może zakończyć łańcuch, umożliwiając nieuwierzytelnionemu atakującemu wykonanie skryptu w kontekście webowym Tautulli, gdy uwierzytelniony użytkownik kliknie spreparowany link.
- CVE-2026-43985Wysokie
Tautulli w wersjach przed 2.17.1 nie wymusza metody POST na punkcie końcowym `configUpdate` i nie używa tokenów anty-CSRF. Atakujący może nakłonić zalogowanego administratora do odwiedzenia złośliwej strony, która wysyła żądanie międzywitrynowe, nadpisując nazwę użytkownika i hasło administratora, co pozwala na przejęcie interfejsu administracyjnego.
- CVE-2026-43984Wysokie
Tautulli to narzędzie monitorujące dla Plex Media Server. Przed wersją 2.17.1 endpoint `log_js_errors` jest dostępny dla każdego uwierzytelnionego użytkownika, w tym gości. Endpoint zapisuje kontrolowane przez atakującego ciągi znaków do logu aplikacji. Widok `logFile` (tylko dla administratora) odczytuje ten log i osadza go w odpowiedzi HTML bez kodowania, co prowadzi do przechowywanego XSS. Gość może wstrzyknąć HTML/JavaScript, które wykona się w przeglądarce administratora.
- CVE-2026-41065Wysokie
Tautulli przed wersją 2.17.1 jest podatny na zdalne wykonanie kodu poprzez funkcję niestandardowego szablonu newslettera. Na świeżej instalacji przed ukończeniem kreatora konfiguracji wszystkie endpointy zarządzania są nieuwierzytelnione. Atakujący może utworzyć agenta newslettera, wskazać katalog szablonów na kontrolowany SMB share z złośliwym szablonem Mako i wywołać kod przez endpoint renderowania newslettera.
- CVE-2026-40605Średnie
Tautulli przed wersją 2.17.1 zawiera podatność typu path traversal w punkcie końcowym usuwania pamięci podręcznej. Uwierzytelniony atakujący może usunąć katalogi poza skonfigurowaną ścieżką cache, co prowadzi do utraty danych i przerwania usługi. Problem naprawiono w wersji 2.17.1.
Oryginalny opis (angielski, źródło NVD)
Tautulli is a Python based monitoring and tracking tool for Plex Media Server. A command injection vulnerability in Tautulli v2.15.3 and prior allows attackers with administrative privileges to obtain remote code execution on the application server. This vulnerability requires the application to have been cloned from GitHub and installed manually. When Tautulli is cloned directly from GitHub and installed manually, the application manages updates and versioning through calls to the `git` command. In the code, this is performed through the `runGit` function in `versioncheck.py`. Since `shell=True` is passed to `subproces.Popen`, this call is vulnerable to subject to command injection, as shell characters within arguments will be passed to the underlying shell. A concrete location where this can be triggered is in the `checkout_git_branch` endpoint. This endpoint stores a user-supplied remote and branch name into the `GIT_REMOTE` and `GIT_BRANCH` configuration keys without sanitization. Downstream, these keys are then fetched and passed directly into `runGit` using a format string. Hence, code execution can be obtained by using `$()` interpolation in a command. Version 2.16.0 contains a fix for the issue.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

