CVE-2026-64625
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 28 - wyżej niż 28% wszystkich znanych CVE
Streszczenie
AVideo przed wersją 29.0 zawiera niekompletną poprawkę dla CVE-2026-45578. Funkcja execAsync() ponownie opakowuje uciekające komendy w podwójnie cudzysłowowe sh -c, co umożliwia podstawianie komend przez $() i backticks. Atakujący mogą wstrzykiwać dowolne komendy OS przez endpoint on_publish.php wtyczki Live, pomimo ochrony escapeshellarg().
Ocena ryzyka
Atakujący może zdalnie wykonać dowolne polecenia systemowe na serwerze, co prowadzi do pełnego przejęcia systemu.
Rekomendacja
Zaktualizuj AVideo do wersji 29.0 lub nowszej. Jeśli aktualizacja nie jest możliwa, wyłącz wtyczkę Live lub ogranicz dostęp do endpointu on_publish.php.
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-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.
Oryginalny opis (angielski, źródło NVD)
AVideo before 29.0 contains an incomplete fix for CVE-2026-45578 where execAsync() re-wraps escaped commands in double-quoted sh -c, allowing command substitution via $() and backticks. Attackers can inject arbitrary OS commands through the Live plugin on_publish.php endpoint despite escapeshellarg() protection.

