CVE-2025-34433
KrytyczneStreszczenie
AVideo w wersjach od 14.3.1 do 20.1 zawiera nieuwierzytelnioną podatność na zdalne wykonanie kodu spowodowaną przewidywalnym generowaniem soli instalacyjnej przy użyciu PHP uniqid(). Znacznik czasu instalacji jest ujawniany przez publiczny endpoint, a pochodny identyfikator hasha jest dostępny przez nieuwierzytelnione odpowiedzi API, co pozwala atakującym na brute-force pozostałej entropii. Odzyskana sól może być użyta do zaszyfrowania złośliwego ładunku dostarczonego do endpointu API powiadomień, który ocenia dane kontrolowane przez atakującego, co prowadzi do wykonania dowolnego kodu jako użytkownik serwera WWW.
Ocena ryzyka
Ryzyko zdalnego wykonania kodu bez uwierzytelnienia, co może prowadzić do pełnej kompromitacji serwera i naruszenia poufności danych.
Rekomendacja
Zaleca się natychmiastową aktualizację AVideo do najnowszej wersji oraz ograniczenie dostępu do publicznych endpointów API.
Inne podatności w AVideo
Zobacz wszystkie- CVE-2026-92913Wysokie
AVideo do commita c3edcc274c389816d434acadac07ee78eaf330c1 używa kryptograficznie słabego generatora liczb pseudolosowych do tworzenia kodów aktywacji konta i parowania logowania. getRandomCode() w objects/functions.php opiera się głównie na uniqid(), co ogranicza przestrzeń kodów do około 36 x 10^6 wartości dla znanej sekundy generacji, a nieuwierzytelniony atakujący może odgadnąć ważny kod i uzyskać dostęp do konta.
- CVE-2026-92586Średnie
AVideo do wersji 29.0 nie weryfikuje uprawnień dostępu do wideo w funkcji set_api_comment, co pozwala uwierzytelnionym użytkownikom dodawać komentarze do filmów chronionych hasłem lub ograniczonych dla grup. Atakujący mogą wysyłać żądania POST do punktu końcowego API komentarzy z dowolnymi identyfikatorami wideo.
- CVE-2026-92584Średnie
AVideo do wersji 29.0 zawiera podatność na trwały cross-site scripting (XSS). Nieuwierzytelniony punkt końcowy zliczania wyświetleń zapisuje User-Agent atakującego bezpośrednio do bazy danych, a następnie jest on renderowany bez escapowania na stronie statystyk właściciela wideo i administratora, co pozwala na wykonanie złośliwego kodu w ich sesjach.
- CVE-2026-92583Średnie
AVideo do wersji 29.0 zawiera wyścig w funkcji enforceRateLimit(), która nie atomowo zwiększa liczników ograniczeń, co pozwala atakującym ominąć wszystkie limity, w tym ochronę przed brute-force na logowanie, poprzez wysyłanie równoczesnych żądań. Atakujący mogą przekroczyć limit 30 prób na 5 minut dowolną liczbę razy.
- CVE-2026-92581Średnie
W AVideo do wersji 29.0, konstruktor Like::__construct() wykonuje operacje arytmetyczne na surowych wartościach żądań przed walidacją, co pozwala na desynchronizację przechowywanych głosów od liczników. Uwierzytelnieni atakujący mogą wysyłać parametry typu tablicowego, aby doprowadzić liczniki polubień do dowolnie niskich wartości, a uszkodzenie utrzymuje się do ręcznej naprawy.
- CVE-2026-92578Wysokie
WWBN AVideo do wersji 29.0 zawiera podatność obejścia uwierzytelniania, w której przechowywany hash hasła jest akceptowany jako prawidłowe poświadczenie logowania przez dwie niezależne ścieżki kodu w loginFromRequest() i encryptPasswordVerify(). Atakujący, który uzyska wartość przechowywanego hasha users.password, może uwierzytelnić się jako dowolny użytkownik, przesyłając hash bezpośrednio do endpointów logowania, całkowicie omijając weryfikację hasła.
- CVE-2026-92577Wysokie
W AVideo do wersji 29.0 endpoint API get_api_video zawiera podatność złamanej kontroli dostępu w gałęzi clean_title, która zwraca filmy ograniczone do grup użytkowników wraz z danymi osobowymi właściciela anonimowym wywołującym. Atakujący mogą odpytywać filmy po ich publicznym slug, aby obejść ograniczenia grupowe i uzyskać wrażliwe pola użytkownika, w tym email, telefon, adres, datę urodzenia i status administratora.
- 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.
Oryginalny opis (angielski, źródło NVD)
AVideo versions 14.3.1 prior to 20.1 contain an unauthenticated remote code execution vulnerability caused by predictable generation of an installation salt using PHP uniqid(). The installation timestamp is exposed via a public endpoint, and a derived hash identifier is accessible through unauthenticated API responses, allowing attackers to brute-force the remaining entropy. The recovered salt can then be used to encrypt a malicious payload supplied to a notification API endpoint that evaluates attacker-controlled input, resulting in arbitrary code execution as the web server user.

