Directus — это API и панель приложений, работающая в режиме реального времени, для управления содержимым базы данных SQL. До версии 11.16.1 конечная точка возобновляемой загрузки TUS Directus (/files/tus) позволяла любому аутентифицированному пользователю с базовыми разрешениями на загрузку файлов перезаписывать произвольные существующие файлы по UUID. Контроллер TUS выполняет только проверки авторизации на уровне коллекции, проверяя наличие у пользователя определенных разрешений на Directus_files, но никогда не проверяет доступ на уровне элемента к конкретному заменяемому файлу.
В результате правила разрешений на уровне строк (например, «пользователи могут обновлять только свои собственные файлы») полностью игнорируются через путь TUS, но при этом правильно применяются по стандартному пути загрузки REST. Эта уязвимость исправлена в версии 11.16.1.
Показать оригинальное описание (EN)
Directus is a real-time API and App dashboard for managing SQL database content. Prior to 11.16.1, Directus' TUS resumable upload endpoint (/files/tus) allows any authenticated user with basic file upload permissions to overwrite arbitrary existing files by UUID. The TUS controller performs only collection-level authorization checks, verifying the user has some permission on directus_files, but never validates item-level access to the specific file being replaced. As a result, row-level permission rules (e.g., "users can only update their own files") are completely bypassed via the TUS path while being correctly enforced on the standard REST upload path. This vulnerability is fixed in 11.16.1.
Характеристики атаки
Последствия
Строка CVSS v3.1