CVE-2026-100630
ŚrednieCVSS 5.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 12 - wyżej niż 12% wszystkich znanych CVE
Streszczenie
AVideo przed wersją 29.1.0 zawiera podatność trwałego skryptu krzyżowego (stored XSS) w polu trailer1 wideo, renderowanym bez sanityzacji wewnątrz wbudowanego łańcucha JavaScript onclick. Atakujący z uprawnieniem do przesyłania wideo mogą zapisać ładunki zakodowane encjami HTML, które omijają walidację isValidURL() i są dekodowane przez przeglądarkę, co pozwala na wyjście z łańcucha JavaScript i wykonanie dowolnego kodu w sesji każdego odwiedzającego, w tym administratorów.
Ocena ryzyka
Atakujący może wykonać dowolny kod w sesji odwiedzających, w tym administratorów, co może prowadzić do przejęcia kont i pełnej kontroli nad aplikacją.
Rekomendacja
Zaktualizuj AVideo do wersji 29.1.0 lub nowszej oraz zweryfikuj sanityzację pola trailer1.
Inne podatności w AVideo
Zobacz wszystkie- CVE-2026-89255Wysokie
AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 zawiera podatność stored cross-site scripting w pluginie LoginControl, który nie koduje w HTML kluczy publicznych PGP wyświetlanych w elemencie textarea. Uwierzytelniony atakujący może wstrzyknąć złośliwy JavaScript, przesyłając spreparowany klucz publiczny, który wykonuje się w sesji administratora podczas przeglądania zakładki profilu użytkownika.
- CVE-2026-89253Wysokie
WWBN AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 zawiera podatność stored cross-site scripting w polu profilu użytkownika 'donationLink'. Funkcja User::setDonationLink() przechowuje wartość, a save() waliduje ją tylko przez filter_var(..., FILTER_VALIDATE_URL), co akceptuje ciągi takie jak http://evil.example/"onmouseover=alert(document.domain)//, podczas gdy getDonationLink() stosuje jedynie strip_tags() i nie koduje cudzysłowów. Uwierzytelniony użytkownik aktualizujący własny profil może przerwać atrybut href i wstrzyknąć obsługę zdarzeń wykonującą JavaScript w przeglądarce każdego odwiedzającego, w tym administratora.
- CVE-2026-89250Wysokie
WWBN AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 zawiera nieuwierzytelnioną podatność odczytu plików w endpointcie getRecordedFile.php, który strumieniuje nagrane pliki FLV z katalogu tymczasowego. Atakujący mogą wywołać endpoint ze znanym lub odgadniętym kluczem strumienia, aby pobrać nagrane pliki wideo na żywo bez uwierzytelnienia i kontroli autoryzacji.
- CVE-2026-89248Średnie
AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 nie sprawdza uwierzytelnienia ani autoryzacji w pliku plugin/WebRTC/status.json.php. Gdy wtyczka WebRTC jest obecna, każdy nieuwierzytelniony użytkownik może uzyskać JSON zawierający ścieżkę do binarki WebRTC2RTMP, port, status pliku, zawartość logów oraz informację o osiągalności portu.
- CVE-2026-89245Średnie
WWBN AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 zawiera podatność cross-site request forgery w pliku playlistRemove.php, która pozwala atakującym usuwać playlisty poprzez pominięcie kontroli CSRF. Atakujący może stworzyć złośliwy formularz wysyłający POST do playlistRemove.php.
- CVE-2026-89240Średnie
WWBN AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 zawiera podatność reflected cross-site scripting w pliku plugin/Live/confirmLivePassword.php. Parametr GET u jest wstawiany bez kodowania do atrybutu src znacznika img, umożliwiając wstrzyknięcie dodatkowego znacznika z procedurą onerror.
- CVE-2026-89148Średnie
AVideo (do commita c3edcc274c389816d434acadac07ee78eaf330c1) zawiera podatność typu open redirect w pliku objects/playlistSort.php. Ponieważ endpoint nie jest skryptem *.json.php, automatyczna ochrona CSRF (autoCSRFGuard()/forbidIfIsUntrustedRequest()) nie jest uruchamiana, a gdy żądanie zawiera parametr sort, skrypt wysyła nagłówek Location ustawiony na niezwalidowaną wartość $_SERVER['HTTP_REFERER'] bez wywołania isSafeRedirectURL(). Zdalny, nieuwierzytelniony atakujący może nakłonić zalogowanego użytkownika mającego uprawnienia do zarządzania docelową playlistą do wysłania cross-origin POST ze spreparowanym Refererem, powodując zmianę kolejności playlisty ofiary i przekierowanie przeglądarki ofiary z zaufanego adresu AVideo na stronę kontrolowaną przez atakującego w celu phishingu. Brak dostępnej wersji z poprawką.
- 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.
Oryginalny opis (angielski, źródło NVD)
AVideo before 29.1.0 contains a stored cross-site scripting vulnerability in the video trailer1 field rendered unsanitized within an inline onclick JavaScript string. Attackers with video upload permission can store HTML entity-encoded payloads that bypass isValidURL() validation and are decoded by the browser to break out of the JavaScript string, executing arbitrary code in any visitor's session including administrators.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

