CVE-2026-89245
ŚrednieCVSS 6.5Streszczenie
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.
Ocena ryzyka
Playlista ofiary zostanie usunięta, gdy odwiedzi ona stronę atakującego będąc zalogowaną, co prowadzi do utraty danych i zakłóceń w działaniu serwisu.
Rekomendacja
Należy wymusić weryfikację tokenu CSRF w playlistRemove.php oraz stosować nagłówki SameSite dla ciasteczek sesyjnych; do czasu poprawki rozważyć ograniczenie dostępu do endpointu.
Inne podatności w AVideo
Zobacz wszystkie- CVE-2026-91967Średnie
AVideo w wersji do 29.0 zawiera podatność typu blind SSRF w funkcji getHeaderContentTypeFromURL, która wykonuje wywołania get_headers() chronione jedynie walidacją formatu. Uwierzytelnieni użytkownicy z uprawnieniem canUpload mogą zapisać wybrane przez atakującego adresy URL jako linki do filmów, co powoduje wykonanie podatnej funkcji przy każdym renderowaniu strony odtwarzania wideo w celu sondowania wewnętrznych hostów.
- CVE-2026-91966Średnie
AVideo w wersji do 29.0 zawiera nieuwierzytelnioną podatność typu SSRF w funkcji check_site_availability, która akceptuje nagłówki HTTP Host kontrolowane przez atakującego. Atakujący mogą wysyłać żądania do submitIndex.php lub ajax.php z dowolnymi nagłówkami Host, aby sondować wewnętrzne hosty i porty sieciowe, podążając za przekierowaniami bez uwierzytelnienia.
- 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-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-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.
Oryginalny opis (angielski, źródło NVD)
WWBN AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 contains a cross-site request forgery vulnerability in playlistRemove.php that allows attackers to delete playlists by skipping CSRF protection checks. Attackers can craft a malicious form that submits a POST request to playlistRemove.php, causing a victim's playlist to be deleted when they visit the attacker's page while logged in.

