CVE-2025-54123
Обзор
Удалённое выполнение кода с аутентификацией в конечной точке промежуточного ПО HoverFly из-за недостаточной проверки ввода и небезопасного выполнения команд.
Последовательность атаки
-
Аутентификация
- Атакующий проходит аутентификацию в HoverFly, используя действительные учётные данные или токен сессии
- Получает Bearer-токен через конечную точку
/api/token-auth
-
Формирование вредоносной нагрузки
- Атакующий создаёт JSON-нагрузку, содержащую:
binary: /bin/bash (управляемый пользователем)
script: произвольную команду оболочки (например, whoami, обратный шелл)
-
Доставка эксплойта
- Отправляет PUT-запрос на
/api/v2/hoverfly/middleware с вредоносной нагрузкой
- Включает Bearer-токен в заголовок Authorization
-
Уязвимая обработка
- HoverFly получает запрос и извлекает параметры
binary и script
- Проверка входных данных для параметра
binary отсутствует
- Создаётся временный файл скрипта с содержимым, предоставленным пользователем
- Немедленно выполняется:
exec.Command(binary, scriptFile) во время проверки промежуточного ПО
-
Выполнение кода
- Команда выполняется с привилегиями процесса HoverFly
- Вывод возвращается в ответе об ошибке (код состояния 422)
- Атакующий может выполнять произвольные команды или устанавливать обратный шелл
Первопричины
- Строки 94–96 (middleware.go): Параметр
binary принимается без проверки
- Строки 14–19 (local_middleware.go): Управляемый пользователем
binary передаётся напрямую в exec.Command()
- Строка 173 (hoverfly_service.go): Промежуточное ПО выполняется немедленно во время тестирования
Подробности доступны здесь: https://github.com/SpectoLabs/hoverfly/security/advisories/GHSA-r4h8-hfp2-ggmf