StudioCMS — это встроенная в Astro автономная система управления контентом, отображаемая на стороне сервера. До версии 0.3.1 функция isAuthorized() диспетчера хранилища S3 объявлялась асинхронной (возвращает Promise<boolean>), но вызывалась без ожидания как в обработчиках POST, так и в PUT. Поскольку объект Promise всегда правдив в JavaScript, !isAuthorized(type) всегда оценивается как false, полностью минуя проверку авторизации.
Любой прошедший проверку подлинности пользователь с наименьшей ролью посетителя может загружать, удалять, переименовывать и составлять список всех файлов в корзине S3. Эта уязвимость исправлена в версии 0.3.1.
Показать оригинальное описание (EN)
StudioCMS is a server-side-rendered, Astro native, headless content management system. Prior to 0.3.1, the S3 storage manager's isAuthorized() function is declared async (returns Promise<boolean>) but is called without await in both the POST and PUT handlers. Since a Promise object is always truthy in JavaScript, !isAuthorized(type) always evaluates to false, completely bypassing the authorization check. Any authenticated user with the lowest visitor role can upload, delete, rename, and list all files in the S3 bucket. This vulnerability is fixed in 0.3.1.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Studiocms Studiocms
cpe:2.3:a:studiocms:studiocms:*:*:*:*:*:*:*:*
|
— |
0.3.1
|