Uwierzytelniony użytkownik może wywołać awarię serwera Navidrome, podając nadmiernie dużą wartość parametru rozmiaru obrazka w żądaniach do endpointów obsługujących okładki albumów lub współdzielone obrazy. Podatność prowadzi do pełnej niedostępności usługi (DoS) oraz potencjalnego wyczerpania przestrzeni dyskowej serwera.
▸ Pokaż oryginał (EN)
Navidrome is an open source web-based music collection server and streamer. Prior to version 0.60.0, authenticated users can crash the Navidrome server by supplying an excessively large size parameter to /rest/getCoverArt or to a shared-image URL (/share/img/<token>). When processing such requests, the server attempts to create an extremely large resized image, causing uncontrolled memory growth. This triggers the Linux OOM killer, terminates the Navidrome process, and results in a full service outage. If the system has sufficient memory and survives the allocation, Navidrome then writes these extremely large resized images into its cache directory, allowing an attacker to rapidly exhaust server disk space as well. This issue has been patched in version 0.60.0.
Atakujący wysyła żądanie HTTP do endpointu /rest/getCoverArt lub /share/img/<token> z ekstremalnie dużą wartością parametru size. Serwer Navidrome próbuje wygenerować obraz o żądanych rozmiarach, co powoduje niekontrolowany wzrost zużycia pamięci RAM. Jeżeli system posiada wystarczającą ilość pamięci i nie uruchomi mechanizmu OOM killer, Navidrome zapisuje ogromne pliki obrazów do katalogu cache — wielokrotne takie żądania pozwalają szybko wyczerpać dostępną przestrzeń dyskową. W przeciwnym wypadku uruchamiany jest mechanizm OOM killer systemu Linux, który terminuje proces Navidrome, powodując całkowity brak dostępu do usługi.
Atakujący może doprowadzić do pełnego zatrzymania serwera Navidrome (DoS) przez wyczerpanie pamięci RAM i uruchomienie OOM killera, a w przypadku systemów z dużą ilością RAM — do wyczerpania przestrzeni dyskowej poprzez zapełnienie katalogu cache ogromnymi plikami obrazów.
Należy zaktualizować Navidrome do wersji 0.60.0, w której problem został rozwiązany. Patch dostępny jest w repozytorium GitHub projektu pod adresem https://github.com/navidrome/navidrome/releases/tag/v0.60.0
Navidrome w wersjach wcześniejszych niż 0.60.0. Do przeprowadzenia ataku wymagane jest posiadanie konta użytkownika lub znajomość tokenu współdzielonego obrazu.
Podatność wymaga uwierzytelnienia (posiadania konta) lub znajomości tokenu współdzielonego obrazu (/share/img/<token>), co nieznacznie ogranicza powierzchnię ataku w środowiskach z kontrolowanym dostępem. Wektor CVSS wskazuje brak wymaganego uwierzytelnienia (PR:N), co może dotyczyć scenariusza z tokenem współdzielonym dostępnym publicznie.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H/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:XNavidrome
APPNavidrome< 0.60.0
Powiązane podatności
SQL Injection i ORM Leak w Navidrome — wyciek danych i brute-force haseł
Navidrome: użycie słabego algorytmu haszowania w integracji z Gravatar
Navidrome is an open source web-based music collection server and streamer. A permission verification flaw in ...
Navidrome is an open source web-based music collection server and streamer. Versions 0.55.0 through 0.55.2 hav...
Navidrome is an open source web-based music collection server and streamer. Navidrome stores the JWT secret in...