CVE-2026-89240
ŚrednieCVSS 6.1Streszczenie
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.
Ocena ryzyka
Atakujący może wykonać dowolny JavaScript w kontekście domeny serwisu w przeglądarce każdego użytkownika, w tym administratora, który otworzy spreparowany link, co prowadzi do kradzieży sesji lub przejęcia konta.
Rekomendacja
Należy kodować parametr u pod kątem URL i HTML przed umieszczeniem go w atrybucie src oraz objąć go filtrem bezpieczeństwa; do czasu poprawki rozważyć wyłączenie wtyczki Live.
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-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-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 reflected cross-site scripting vulnerability in plugin/Live/confirmLivePassword.php. The script interpolates the unauthenticated GET parameter u (which is not covered by $securityFilter) directly into an <img src="..."> attribute without URL- or HTML-encoding. A remote attacker can craft a link containing a double-quote character in u (with a non-empty key parameter and no valid c parameter) to close the src attribute and inject an additional tag with an onerror handler, executing arbitrary JavaScript in the site's origin in the browser of any user, including an administrator, who opens the link. No patched version was available at the time of the advisory.

