Новая критическая брешь в FortiWeb стала лазейкой для хакеров
Кибербез-исследователи из Watchtower Labs нашли серьезную уязвимость в Fortinet FortiWeb. Fortinet FortiWeb представляет собой веб-файрвол, которым пользуются многие компании для защиты своих приложений. Найденная брешь позволяет обойти аутентификацию и получить доступ к админке от имени любого пользователя. Баг получил идентификатор CVE-2023-48788 и один из самых высоких уровней по оценке критичности CVE — 9,8 балла из 10.
Суть проблемы: в файрволе есть функция, которая помогает администраторам маскироваться (имперсонировать) под пользователей для тестирования и поддержки. Её также можно использовать для несанкционированного входа.
Найденная уязвимость затрагивает endpoint /api/v1/impersonate в REST API форм-фактора FortiWeb. Исследователи обнаружили, что этот эндпоинт не проверяет должным образом учётные данные. Для этого создаётся специальный JSON-запрос, после выполнения которого можно войти от имени любого пользователя без пароля. Для эксплуатации достаточно знать имя пользователя, например admin. Атакующий с доступом к веб-интерфейсу может отправить POST-запрос на эндпоинт /api/v1/impersonate и получить действительную сессию целевого юзера. Причём некоторые администраторы не меняют имя пользователя, созданное по умолчанию в FortiWeb.
Интересно, что уязвимость относится к категории design flaw. То есть это не ошибка в коде, а проблема в самом дизайне функционала. Такие баги сложнее находить и исправлять, чем обычные ошибки программирования. Специалисты Watchtower Labs обнаружили уязвимость, просто изучая API. После подтверждения бага они сообщили в Fortinet через программу bug bounty.
Под угрозой все версии FortiWeb от 7.0.0 до 7.0.8, от 7.2.0 до 7.2.3 и от 7.4.0 до 7.4.1. Fortinet уже выпустил патч. Исследователи ИБ рекомендуют обновить FortiWeb до версий 7.0.9, 7.2.4 или 7.4.2 в зависимости от используемой ветки либо ограничить доступ к интерфейсу управления FortiWeb, оставив только доверенные IP-адреса.