CVE-2026-86729
WysokieCVSS 7.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 12 - wyżej niż 12% wszystkich znanych CVE
Streszczenie
WWBN AVideo do commit e01e41ecc (brak dostępnej wersji z poprawką) udostępnia get_api_preauthorize w plugin/API/API.php jako drugą, nieudokumentowaną ścieżkę logowania. W przeciwieństwie do get_api_signIn, która egzekwuje limit 10 prób na 5 minut przez checkRateLimit(), get_api_preauthorize wykonuje tę samą kontrolę poświadczeń bez ograniczania tempa dla dowolnego klienta, co pozwala na nieograniczone zdalne zgadywanie haseł dla dowolnych kont, w tym administratora. Endpoint działa również jako wyrocznia poświadczeń: zwraca komunikat "Invalid credentials" zarówno dla poprawnych, jak i błędnych haseł, podczas gdy pole users_id w treści odpowiedzi ujawnia uwierzytelnioną tożsamość (users_id:1 przy sukcesie, users_id:0 przy porażce), a poprawne hasło ustanawia ciasteczko sesji, które pozostaje użyteczne dla uwierzytelnionych żądań API. Razem te problemy umożliwiają nieuwierzytelnione przejęcie konta przez brute-force.
Ocena ryzyka
Ryzyko obejmuje całkowite przejęcie kont administratora i innych użytkowników bez uwierzytelnienia, co może prowadzić do nieautoryzowanego dostępu do danych i pełnej kompromitacji systemu.
Rekomendacja
Zaleca się natychmiastowe wyłączenie lub usunięcie endpointu get_api_preauthorize, jeśli to możliwe, oraz wdrożenie ograniczeń tempa żądań i monitorowania pod kątem ataków brute-force.
Inne podatności w WWBN AVideo
Zobacz wszystkie- CVE-2026-89243Wysokie
WWBN AVideo (do commita c3edcc274c389816d434acadac07ee78eaf330c1) zawiera podatność stored XSS w metodzie UserGroups::setGroup_name(), która nie sanityzuje danych wejściowych group_name. Administratorzy z uprawnieniem canAdminUserGroups mogą wstrzyknąć złośliwy HTML i JavaScript, który wykonuje się w przeglądarce innych administratorów odwiedzających interfejs zarządzania użytkownikami.
- CVE-2026-43885Wysokie
WWBN AVideo to otwarta platforma wideo, która w wersjach do 29.0 pozwala nieautoryzowanym użytkownikom na odczytanie APISecret z pliku objects/plugins.json.php. Dzięki temu mogą oni wywoływać chronione punkty końcowe API, takie jak users_list, bez logowania się.
- CVE-2026-86190Krytyczne
WWBN AVideo zawiera podatność uszkodzonej kontroli dostępu w punktach końcowych videoViewsInfo, która zwraca kompletne rekordy użytkowników, w tym hashe haseł, tokeny odzyskiwania i identyfikatory sesji na żywo, nieuwierzytelnionym wywołującym po podaniu parametru hash. Atakujący mogą wykorzystać ujawniony identyfikator sesji do przejęcia sesji widzów, w tym kont administratorów, oraz uzyskać wrażliwe dane osobowe wszystkich widzów.
- CVE-2026-86189Krytyczne
WWBN AVideo zawiera podatność typu path traversal w pliku notify.ffmpeg.json.php, która pozwala nieuwierzytelnionym atakującym zapisywać pliki w dowolnych lokalizacjach poprzez podanie wybranego przez siebie ścieżki w parametrze avideoRelativePath. Atakujący mogą odtworzyć dowolny wcześniej wydany szyfrogram jako token notifyCode, który jest odszyfrowywany, ale nigdy nie weryfikowany, aby ominąć uwierzytelnianie i zapisywać pliki w katalogu głównym aplikacji i podkatalogach.
- CVE-2026-85154Krytyczne
WWBN AVideo zawiera podatność uwierzytelniania, gdzie poświadczenie video_id_hash jest nie wygasającym, nieodwołalnym tokenem typu bearer, który przyznaje pełny dostęp do sesji administratora na koncie właściciela wideo. Atakujący, którzy zdobędą video_id_hash, mogą go odtwarzać w nieskończoność, aby uwierzytelnić się jako właściciel wideo z pełnymi uprawnieniami, a poświadczenie pozostaje ważne nawet po zmianie hasła przez właściciela.
- CVE-2026-92915Wysokie
WWBN AVideo do commita e01e41ecc zawiera błąd kontroli dostępu w objects/userVerifyEmail.php. Skrypt wyłącza wymóg logowania, pobiera users_id bezpośrednio z query stringa i wywołuje User::sendVerificationLink() bez sesji, tokenu CSRF, sprawdzenia relacji czy limitu szybkości, co pozwala nieuwierzytelnionemu atakującemu wysyłać dowolną liczbę e-maili weryfikacyjnych, enumerować konta i zapisywać tokeny odzyskiwania hasła na kontach ofiar.
- CVE-2026-91965Wysokie
WWBN AVideo do wersji 29.0 nie egzekwuje ograniczeń grup użytkowników w endpointach plugin/Live/stats.json.php i plugin/Live/calendar.json.php. Nieuwierzytelnieni atakujący mogą uzyskać szczegóły transmisji na żywo, w tym klucze strumieniowe, tytuły, opisy, informacje o właścicielu oraz bezpośrednie adresy URL odtwarzania HLS, uzyskując dostęp do tych endpointów.
- CVE-2026-90552Średnie
WWBN AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 nie waliduje własności playlisty w punktach końcowych Playlists_schedules/list.json.php i Live/calendar.json.php, co pozwala uwierzytelnionym i nieuwierzytelnionym użytkownikom na odczyt prywatnych metadanych harmonogramu playlisty. Atakujący z uprawnieniami canStream lub bez uwierzytelnienia mogą pobrać nazwy harmonogramów, opisy, znaczniki czasu i identyfikatory playlist, odpytywując te punkty końcowe bez sprawdzania własności.
- CVE-2026-90551Średnie
WWBN AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 nie waliduje własności playlisty w punkcie końcowym API video_from_program, co pozwala na nieuwierzytelniony dostęp do zawartości prywatnych playlist. Atakujący mogą odpytywać API bez uwierzytelnienia, aby wyliczać nazwy prywatnych playlist, informacje o właścicielu i tytuły filmów, w tym treści chronione hasłem.
- CVE-2026-90550Średnie
WWBN AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 nie sprawdza autoryzacji użytkownika w punkcie końcowym PlayerSkins mediaSession.json.php przed zwróceniem metadanych filmu. Nieuwierzytelnieni atakujący mogą odpytać ten punkt końcowy z parametrem identyfikatora filmu, aby uzyskać tytuły filmów chronionych hasłem oraz adresy e-mail właścicieli bez uwierzytelnienia.
Oryginalny opis (angielski, źródło NVD)
WWBN AVideo through commit e01e41ecc (no patched version available) exposes get_api_preauthorize in plugin/API/API.php as a second, undocumented login path. Unlike get_api_signIn, which enforces a rate limit of 10 attempts per 5 minutes via checkRateLimit(), get_api_preauthorize performs the same credential check with no throttling for any client, allowing unlimited remote password guessing against arbitrary accounts, including admin. The endpoint also acts as a credential oracle: it returns the message "Invalid credentials" for both correct and incorrect passwords, while the users_id field in the response body discloses the authenticated identity (users_id:1 on success, users_id:0 on failure), and a correct password establishes a session cookie that remains usable for authenticated API requests. Together these issues permit unauthenticated brute-force account takeover.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

