Podatności Audiobookshelf
8 znanych podatności CVE w Audiobookshelf, przetłumaczonych i ocenionych.
- CVE-2026-73085Średnie
Audiobookshelf to samodzielnie hostowany serwer audiobooków i podcastów. Przed wersją 2.36.0 funkcja jwtAuthCheck w server/auth/TokenManager.js traktuje tokeny JWT typu refresh jako tokeny dostępu bearer na punktach końcowych API i WebSocket, takich jak /api/me, zamiast ograniczać je do /auth/refresh. Pozwala to tokenom odświeżania na uwierzytelnianie jako powiązani użytkownicy. Problem naprawiono w wersji 2.36.0.
- CVE-2026-71209Wysokie
Podatność w audiobookshelf: mechanizm uwierzytelniania błędnie dopasowuje trasy GET dozwolone bez uwierzytelnienia, a CacheManager łączy zakodowane wartości do ścieżki pliku cache, co może prowadzić do nieautoryzowanego dostępu do plików.
- CVE-2026-42888Średnie
Audiobookshelf to samodzielnie hostowany serwer audiobooków i podcastów. W wersjach przed 2.32.2 punkt końcowy tworzenia podcastu w pliku server/controllers/PodcastController.js przyjmuje kontrolowaną przez użytkownika ścieżkę pliku bez wystarczającej walidacji granic, aby zapewnić, że pozostaje ona w zamierzonym katalogu biblioteki. Podatność naprawiono w wersji 2.32.2.
- CVE-2026-42887Średnie
W Audiobookshelf przed wersją 2.33.0 występuje podatność przechowywanego XSS na stronie logowania z powodu niewłaściwej sanityzacji pola authLoginCustomMessage w endpoincie /api/auth-settings. Atakujący z uprawnieniami administracyjnymi może wstrzyknąć dowolny HTML/JavaScript, który będzie renderowany na stronie logowania dla wszystkich użytkowników. Podatność naprawiono w wersji 2.33.0.
- CVE-2026-42886Średnie
W Audiobookshelf przed wersją 2.32.2 endpoint POST /api/backups/upload dekompresuje wpis details z przesłanego pliku ZIP .audiobookshelf w całości do pamięci za pomocą zip.entryData(), bez limitu rozmiaru po dekompresji. Middleware uploadu również nie ma limitu rozmiaru pliku, więc administrator może przesłać spreparowany ZIP z wysoce skompresowanym wpisem details, który po dekompresji zużywa setki megabajtów lub gigabajty pamięci, powodując awarię procesu serwera przez OOM. Podatność naprawiono w wersji 2.32.2.
- CVE-2026-42885Średnie
W Audiobookshelf (przed 2.32.2) endpoint POST /api/filesystem/pathexists używa String.startsWith() do weryfikacji, czy rozwiązana ścieżka pliku znajduje się w folderze biblioteki. Sprawdzenie zawodzi dla katalogów sąsiednich o wspólnym prefiksie nazwy (np. /audiobooks vs /audiobooks-private), pozwalając uwierzytelnionym użytkownikom z uprawnieniem do przesyłania na sondowanie istnienia plików poza autoryzowanym folderem biblioteki.
- CVE-2026-42884Średnie
Audiobookshelf przed wersją 2.32.2 w endpointach GET /api/collections oraz GET /api/collections/:id zwraca kolekcje ze wszystkich bibliotek bez sprawdzania, czy użytkownik ma do nich dostęp. Uwierzytelniony użytkownik z dostępem do dowolnej biblioteki może wyliczyć i odczytać kolekcje (w tym pełne metadane książek) z bibliotek, do których jest wyraźnie ograniczony.
- CVE-2026-42883Średnie
W Audiobookshelf przed wersją 2.32.2 endpoint GET /api/libraries/:id/download sprawdza dostęp użytkownika tylko do biblioteki wskazanej w ścieżce URL, ale pobiera elementy wyłącznie na podstawie identyfikatorów podanych przez atakującego, bez ograniczania ich do tej biblioteki. Uwierzytelniony użytkownik z uprawnieniem do pobierania i dostępem do dowolnej biblioteki może wykraść pełną zawartość plików z innych bibliotek, w tym tych, do których ma jawny zakaz dostępu.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

