Критическая уязвимость в Docker-образе Termix подвергает риску SSH-учетные данные пользователей

vulnerability

В официальном Docker-образе приложения Termix обнаружена критическая уязвимость, позволяющая злоумышленникам получать доступ к конфиденциальным SSH-учетным данным без какой-либо аутентификации. Уязвимость, получившая идентификатор CVE-2025-59951, затрагивает все версии от release-0.1.1-tag до release-1.6.0-tag, при этом исправленная версия на момент публикации отсутствует.

Детали уязвимости

Проблема заключается в некорректной проверке IP-адресов в архитектуре приложения. Termix использует Docker-образ, в котором Node.js-бэкенд работает за Nginx reverse proxy. Код бэкенда применяет метод req.ip для определения, поступил ли запрос с локальной машины. Однако из-за того, что Nginx и Termix функционируют в одном окружении, req.ip всегда возвращает IP-адрес прокси (127.0.0.1), что заставляет приложение считать все запросы локальными.

В результате любой пользователь с сетевым доступом может напрямую обращаться к эндпоинту /ssh/db/host/internal без необходимости входа в систему и получать полную информацию о сохраненных SSH-хостах, включая адреса, имена пользователей и пароли. В стандартной конфигурации служба Termix размещается внутри виртуальной машины, и злоумышленники могут сканировать сетевые активы для поиска экспонированных экземпляров.

Для эксплуатации уязвимости достаточно отправить простой GET-запрос к уязвимому эндпоинту, после чего бэкенд возвращает полные данные SSH-конфигурации. Сетевые сканеры и платформы картографирования активов значительно упрощают для атакующих поиск уязвимых хостов. Получив доступ, злоумышленник может осуществлять латеральное перемещение по сети или собирать учетные данные для последующих атак.

Специалисты по кибербезопасности рекомендуют для защиты от данной угрозы изменить логику валидации в бэкенде, используя заголовок X-Real-IP вместо req.ip или IP-адреса, передаваемого прокси по умолчанию. Это изменение гарантирует, что приложение будет точно идентифицировать IP-адрес клиента. Администраторам также следует ограничить доступ к управляющим эндпоинтам с помощью правил межсетевого экрана, разместить Termix за аутентифицированным шлюзом или VPN, мониторить логи на предмет неожиданных запросов к эндпоинту /ssh/db/host/internal и обновить любые SSH-учетные данные, которые могли быть скомпрометированы.

До выпуска исправленного Docker-образа Termix эти меры могут снизить риски и ограничить потенциальный ущерб. Пользователям Docker-образа Termix следует немедленно применить рекомендуемые меры защиты и ожидать официального исправления для обеспечения безопасности SSH-учетных данных. Особое внимание необходимо уделить системам, использующим официальный образ или кастомные образы, собранные из официального Dockerfile, которые уязвимы при использовании Nginx reverse proxy с настройками по умолчанию.

Воспроизвести уязвимость можно, обратившись по адресу http://<IP>:<PORT>/ssh/db/host/internal с помощью стандартного HTTP-запроса. Уязвимость демонстрирует важность тщательной проверки механизмов аутентификации и авторизации в распределенных системах, особенно при использовании контейнерных технологий и обратных прокси.

Ссылки

Комментарии: 0