Katalog CVE

CVE-2026-61575

ŚrednieCVSS 4.7
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W AVideo przed wersją 8.1.0 plik view/queue.php używa pathinfo na kontrolowanym przez wywołującego parametrze fileURI i zapisuje nazwę pliku przez setTitle w encoder_queue.title bez neutralizacji. fileURI nie jest objęty filtrami objects/security.php, a uprawnienie Login::canUpload() można nadać sobie samodzielnie, co pozwala atakującemu zapisać tytuł HTML, którego obsługa zdarzeń wykona się w przeglądarce uprzywilejowanego widza (administratora lub operatora tego samego streamera).

Ocena ryzyka

Uwierzytelniony atakujący może wykonać dowolny JavaScript w kontekście uprzywilejowanego użytkownika, odczytać dane sesji i poświadczenia streamera oraz działać z jego uprawnieniami. Skrypt może wykonywać się ponownie dla każdego kwalifikującego się widza do czasu usunięcia wiersza.

Rekomendacja

Zaktualizuj AVideo do wersji 8.1.0 lub nowszej. Ogranicz możliwość samodzielnego nadawania uprawnień canUpload i zweryfikuj, czy tytuły kolejki są kodowane przed wstawieniem do HTML.

Inne podatności w AVideo

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

AVideo is a video-sharing Platform. Prior to 8.1.0, `view/queue.php` uses `pathinfo` on the caller-controlled `fileURI` and stores its filename through `setTitle` in `encoder_queue.title` without neutralization. `fileURI` is not in the `objects/security.php` filter lists, and the `Login::canUpload()` capability needed to submit a queue entry can be self-granted using an attacker-controlled login site without legitimate encoder credentials. `view/index.php` loads `queue.json` from `view/queue.json.php` into the `#grid` jQuery Bootgrid table; its title formatter concatenates `row.title` into raw cell HTML. An attacker can therefore store an HTML title whose event handler runs in a privileged viewer's browser. `Encoder::getAll` limits nonadministrators to their own streamer's rows, so the victim must be an administrator who sees all rows or an operator on the attacker's streamer. A second `.html()` sink in the progress panel uses the same title but additionally depends on a helper script loaded from the streamer; the Bootgrid sink is reachable from encoder code alone. The script can read session-visible data and rendered streamer credentials, act with the viewer's privileges, and execute again for each qualifying viewer until the row is removed. This issue is fixed in version 8.1.0.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS