CVE-2026-88869
KrytyczneCVSS 9.3Streszczenie
AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 zawiera podatność stored cross-site scripting (XSS) w endpoincie log.php wtyczki AD_Server, który nie escapuje parametru label przed zapisem. Nieuwierzytelniony atakujący może wstrzyknąć złośliwy HTML przez parametr label, który jest później renderowany bez sanityzacji w raporcie Ad Types w panelu administratora przy użyciu jQuery .html(), co pozwala na wykonanie dowolnego JavaScriptu w sesji przeglądarki administratora.
Ocena ryzyka
Atakujący może wykonać dowolny JavaScript w przeglądarce administratora, co może prowadzić do kradzieży sesji, przejęcia konta administratora lub dalszych ataków w kontekście aplikacji. Ryzyko jest wysokie, ponieważ wykorzystanie nie wymaga uwierzytelnienia.
Rekomendacja
Zaktualizuj AVideo do wersji zawierającej poprawkę (po commicie c3edcc274c389816d434acadac07ee78eaf330c1). Jeśli poprawka nie jest dostępna, rozważ wyłączenie wtyczki AD_Server lub ograniczenie dostępu do panelu administratora.
Inne podatności w AVideo
Zobacz wszystkie- CVE-2026-88876Wysokie
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.
- 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ń.
Oryginalny opis (angielski, źródło NVD)
AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 contains a stored cross-site scripting vulnerability in the AD_Server plugin's log.php endpoint that fails to escape the label parameter before storage. An unauthenticated attacker can inject malicious HTML through the label parameter, which is later rendered unsanitized in the admin Ad Types report using jQuery .html(), allowing execution of arbitrary JavaScript in an administrator's browser session.

