CVE-2026-42886
ŚrednieCVSS 4.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 24 - wyżej niż 24% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Administrator lub atakujący z uprawnieniami administratora może wywołać awarię serwera poprzez wyczerpanie pamięci, powodując niedostępność usługi. Może to zakłócić dostęp do audiobooków i podcastów dla wszystkich użytkowników.
Rekomendacja
Zaktualizuj Audiobookshelf do wersji 2.32.2 lub nowszej. Do czasu aktualizacji ogranicz dostęp do endpointu uploadu backupów wyłącznie do zaufanych administratorów.
Inne podatności w Audiobookshelf
Zobacz wszystkie- 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-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.
Oryginalny opis (angielski, źródło NVD)
Audiobookshelf is a self-hosted audiobook and podcast server. Prior to 2.32.2, the POST /api/backups/upload endpoint decompresses the details entry from an uploaded .audiobookshelf ZIP file entirely into memory using zip.entryData(), with no limit on the decompressed size. The upload middleware also has no file size limit. An admin user can upload a crafted ZIP containing a highly compressed details entry that, when decompressed, consumes hundreds of megabytes or gigabytes of memory, crashing the server process via out-of-memory. This vulnerability is fixed in 2.32.2.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

