CVE-2026-88876
WysokieCVSS 7.5Streszczenie
AVideo do rewizji c3edcc274c389816d434acadac07ee78eaf330c1 zawiera podatność braku autoryzacji w pliku plugin/PlayerSkins/seo.php. Nieuwierzytelniony atakujący może uzyskać dostęp do źródeł wideo chronionych hasłem, wywołując getSources() bez weryfikacji hasła i pobierając bezpośredni adres URL pliku MP4.
Ocena ryzyka
Chronione hasłem treści wideo mogą zostać pobrane przez nieuprawnione osoby, co prowadzi do naruszenia poufności materiałów. Może to skutkować wyciekiem treści premium lub prywatnych.
Rekomendacja
Ogranicz dostęp do endpointu seo.php i wymuszaj weryfikację hasła przed zwróceniem źródeł wideo. Do czasu wydania poprawki rozważ wyłączenie lub zablokowanie tego endpointu.
Inne podatności w AVideo
Zobacz wszystkie- CVE-2026-88875Średnie
AVideo do rewizji c3edcc274c389816d434acadac07ee78eaf330c1 (master, 2026-08-23) niekompletnie oczyszcza wrażliwe pola użytkownika w odpowiedzi APIName=video. Wiersze wideo zawierają kolumny dołączone z rekordu właściciela, a API::get_api_video() wywołuje removeSensitiveUserFields() tylko gdy wywołujący nie jest uwierzytelniony i nie używa ważnego sekretu API; nigdy nie porównuje User::getId() z users_id wiersza. W rezultacie każde konto o niskich uprawnieniach może zażądać wideo innego użytkownika i otrzymać jego adres e-mail, nazwę konta (user) oraz flagi isAdmin, canUpload i canStream.
- CVE-2026-88874Wysokie
AVideo do rewizji c3edcc274c389816d434acadac07ee78eaf330c1 nie wymusza sprawdzenia hasła transmisji na żywo w endpoincie statystyk ani w źródle HLS. Funkcja Live::_getStats() zwraca nieuwierzytelnionym wywołującym klucz strumienia RTMP, flagę isPasswordProtected oraz adres URL HLS, a dołączona konfiguracja NGINX udostępnia playlistę .m3u8, klucz AES-128 i segmenty transport-stream bez uwierzytelniania.
- CVE-2026-88873Wysokie
WWBN AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 zawiera podatność cross-site request forgery w pliku view/logArchive.json.php. Nieuwierzytelnieni atakujący mogą archiwizować logi aplikacji, wysyłając żądania GET bez weryfikacji tokenu CSRF, kopiując wrażliwe logi do publicznie dostępnego pliku ZIP i obcinając bieżący log.
- CVE-2026-88872Wysokie
AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 zawiera podatność cross-site request forgery w endpoincie setPassword.json.php. Nieuwierzytelnieni atakujący mogą modyfikować hasło kanału dowolnego użytkownika, wysyłając żądanie GET bez weryfikacji tokenu CSRF.
- CVE-2026-88871Średnie
WWBN AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 (master, 2026-08-23) zawiera podatność CSRF w punkcie końcowym plugin/CustomizeUser/setSubscribers.json.php wtyczki CustomizeUser. Skrypt odczytuje users_id i ExtraSubscribers z $_REQUEST i wywołuje User::setExtraSubscribers() bez wymogu żądania POST ani ważnego tokenu CSRF; autoCSRFGuard() jest stosowany tylko do żądań POST do *.json.php, a mutacja nie przechodzi przez ObjectYPT::save()/isUntrustedRequest(), więc cross-origin GET kończy się sukcesem. Nieuwierzytelniony zdalny atakujący może nakłonić zalogowanego administratora do wczytania spreparowanej strony (np. tagu <img> wskazującego na endpoint) i sfałszować liczbę ExtraSubscribers wyświetlaną na kanale dowolnego użytkownika.
- CVE-2026-88870Wysokie
WWBN AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 zawiera podatność cross-site request forgery w endpointach klucza PGP wtyczki LoginControl, które nie weryfikują tokenu CSRF. Atakujący mogą tworzyć złośliwe strony z tagami obrazów wskazującymi na savePublicKey.json.php, aby zastąpić klucz publiczny PGP 2FA zalogowanej ofiary.
- CVE-2026-88868Wysokie
AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 zawiera podatność stored cross-site scripting we wtyczce LiveLinks, gdzie pola title i description są przechowywane bez sanityzacji. Użytkownik z uprawnieniem canStream może wstrzyknąć złośliwe skrypty, które wykonują się w przeglądarce każdego odwiedzającego stronę live-link, w tym administratorów.
- CVE-2026-88867Wysokie
WWBN AVideo w wersjach do commita c3edcc274c389816d434acadac07ee78eaf330c1 zawiera podatność stored cross-site scripting. Plik objects/categoryAddNew.json.php przekazuje parametry POST name i iconClass do Category::setName() i Category::setIconClass(), które przechowują wartości bez sanityzacji, a następnie są one odzwierciedlane jako HTML w widokach i kartach galerii.
- CVE-2026-88866Wysokie
WWBN AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 zawiera podatność stored cross-site scripting we wtyczce LoginControl, która nie koduje nagłówka User-Agent przed zapisaniem go w historii logowań. Atakujący z dowolnym ważnym kontem może wstrzyknąć złośliwe skrypty w nagłówku User-Agent, które wykonują się w przeglądarce administratora podczas przeglądania strony historii logowań.
- CVE-2026-88865Wysokie
AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 nie weryfikuje własności restreamu w pliku getRestream.json.php, co pozwala uwierzytelnionym użytkownikom z uprawnieniem canStream generować tokeny dla dowolnych restreamów. Atakujący mogą wymienić token, aby pobrać klucze strumieni innych użytkowników z getLiveKey.json.php i publikować do ich celów YouTube, Twitch lub RTMP.
Oryginalny opis (angielski, źródło NVD)
AVideo through revision c3edcc274c389816d434acadac07ee78eaf330c1 contains a missing authorization vulnerability in plugin/PlayerSkins/seo.php that allows unauthenticated attackers to access password-protected video sources by calling getSources() without password validation. Attackers can request the seo.php endpoint with a video ID to obtain the direct MP4 URL and read protected media bytes without supplying the configured password.

