WWBN AVideo — видеоплатформа с открытым исходным кодом. В версиях до 26.0 включительно POST /objects/aVideoEncoder.json.php принимает управляемый запросчиком параметр chunkFile, предназначенный для поэтапной загрузки фрагментов. Вместо того, чтобы ограничивать этот путь доверенными местоположениями фрагментов, сгенерированных сервером, конечная точка принимает произвольные пути локальной файловой системы, которые передают `isValidURLOrPath()`.
Этот помощник разрешает файлы в широких каталогах сервера, включая `/var/www/`, корень приложения, кэш, tmp и `videos`, отклоняя только файлы `.php`. Для авторизованного пользователя, редактирующего собственное видео, это становится произвольным чтением локального файла. Конечная точка копирует выбранный злоумышленником локальный файл в общедоступный путь хранения видео злоумышленника, после чего его можно загрузить через HTTP.
Коммит 59bbd601a3f65a5b18c1d9e4eb11471c0a59214f содержит исправление для этой проблемы.
Показать оригинальное описание (EN)
WWBN AVideo is an open source video platform. In versions up to and including 26.0, `POST /objects/aVideoEncoder.json.php` accepts a requester-controlled `chunkFile` parameter intended for staged upload chunks. Instead of restricting that path to trusted server-generated chunk locations, the endpoint accepts arbitrary local filesystem paths that pass `isValidURLOrPath()`. That helper allows files under broad server directories including `/var/www/`, the application root, cache, tmp, and `videos`, only rejecting `.php` files. For an authenticated uploader editing their own video, this becomes an arbitrary local file read. The endpoint copies the attacker-chosen local file into the attacker's public video storage path, after which it can be downloaded over HTTP. Commit 59bbd601a3f65a5b18c1d9e4eb11471c0a59214f contains a patch for the issue.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Wwbn Avideo
cpe:2.3:a:wwbn:avideo:*:*:*:*:*:*:*:*
|
— |
<= 26.0
|