CVE-2026-92915
WysokieCVSS 7.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 24 - wyżej niż 24% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Nieuwierzytelniony atakujący może spamować skrzynki pocztowe, enumerować konta i ich status weryfikacji oraz umieszczać aktywne tokeny odzyskiwania hasła na kontach ofiar, co może prowadzić do przejęcia konta. Brak dostępnej wersji z poprawką zwiększa ryzyko.
Rekomendacja
Brak dostępnej wersji z poprawką — rozważ wyłączenie lub ograniczenie dostępu do objects/userVerifyEmail.php oraz objects/userRecoverPassSave.json.php na poziomie serwera WWW. Monitoruj logi pod kątem nietypowych żądań weryfikacyjnych i wdroż własne limity szybkości.
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-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.
- CVE-2026-90549Średnie
WWBN AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 nie autoryzuje prawidłowo dostępu do punktu końcowego videosAndroid.json.php, co pozwala nieuwierzytelnionym gościom na wyświetlanie filmów chronionych hasłem wraz z wrażliwymi informacjami o właścicielu. Atakujący mogą pobrać metadane filmów, w tym adres e-mail właściciela, lastLogin, nazwę pliku i hashId, wysyłając nieuwierzytelnione żądanie GET do tego punktu końcowego.
Oryginalny opis (angielski, źródło NVD)
WWBN AVideo through commit e01e41ecc (no patched version available) contains a broken access control flaw in objects/userVerifyEmail.php. The script disables the login requirement ($global['ignoreUserMustBeLoggedIn'] = 1), takes users_id directly from the query string, and calls User::sendVerificationLink() with no session requirement, no CSRF/global token, no relationship check between caller and target, and no enforceRateLimit() call. The only intended throttle is keyed to the caller's own session, so cookie-less requests are never limited. An unauthenticated remote attacker can therefore cause an arbitrary number of verification emails to be sent to any account ID, and can enumerate accounts and their verification status from the three distinct JSON responses ("Verification Sent", "Already verified", "Unknown error"). In addition, createVerificationCode() invokes $user->setRecoverPass() and saves the user, so each anonymous request writes a live password-recovery token onto the targeted account; that token is embedded in base64 in the verification link emailed to the account owner and is accepted by objects/userRecoverPassSave.json.php as the credential for setting a new password.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

