Исследователи кибербезопасности обнаружили критическую уязвимость в функции ProxyCommand клиента OpenSSH, которая может быть использована для выполнения произвольного кода на системах пользователей. Уязвимость, получившая идентификатор CVE-2025-61984, связана с недостаточной фильтрацией управляющих символов в именах пользователей при обработке строки ProxyCommand.
Детали уязвимости
Проблема затрагивает клиентские реализации OpenSSH версий до 10.0p1 включительно и получила высокую оценку по шкале CVSS 3.1 - 8.1 баллов. Особую озабоченность специалистов вызывает публикация доказательства концепции эксплойта, демонстрирующего практическую реализацию атаки в оболочках Bash, fish и csh.
Техническая суть уязвимости заключается в механизме обработки директивы ProxyCommand в файле конфигурации ~/.ssh/config. Когда система использует токен %r для подстановки имени удаленного пользователя, управляющие символы, такие как перевод строки, не фильтруются должным образом. Это позволяет злоумышленнику внедрить разрывы строк, которые прерывают выполнение команды exec и обеспечивают выполнение произвольных команд на стороне клиента.
1 | ProxyCommand /usr/bin/nc -X connect -x proxy:8080 '%r@%h:%p' |
Механизм эксплуатации основан на создании синтаксической ошибки во встроенной команде оболочки, что приводит к прерыванию выполнения строки exec с последующим выполнением зловредных команд на следующей строке. В опубликованном доказательстве концепции для оболочки Bash демонстрируется использование конструкции exec $[*] для генерации синтаксической ошибки, после чего выполняется вредоносная полезная нагрузка.
1 | bash -xc "$(printf 'exec $[*]\necho compromised')" |
Одним из наиболее вероятных векторов атаки является использование злонамеренно сконфигурированных URL Git-подмодулей. Когда пользователь клонирует репозиторий, содержащий специально подготовленную запись в файле .gitmodules, и при этом имеет соответствующую конфигурацию SSH-прокси, внедренные управляющие символы вызывают выполнение произвольного кода до установления соединения.
Важно отметить, что оболочка Zsh не подвержена данной технике эксплуатации, поскольку неинтерактивные оболочки по умолчанию прекращают выполнение при возникновении ошибок синтаксического анализа. Однако распространенность Bash в большинстве Unix-подобных систем делает уязвимость особенно опасной для корпоративных сред и систем административного управления.
Основным методом устранения уязвимости является обновление OpenSSH до версии 10.1p1 или более поздней, где введена явная проверка на наличие управляющих символов в именах пользователей. Для администраторов, которые не могут немедленно обновить систему, доступен временный метод защиты путем заключения токена %r в кавычки в конфигурациях SSH-клиента.
Дополнительные меры защиты включают ограничение использования SSH-транспорта для Git-подмодулей через настройку git config --global protocol.ssh.allow user и избежание обработчиков URL, которые передают нефильтрованные имена пользователей SSH. Особенное внимание следует уделить средам, использующим SSH-прокси, включая облачные шлюзовые решения, такие как Teleport, которые генерируют прокси-команды, содержащие токен %r.
Осознание существования этой уязвимости особенно важно для организаций, использующих сложные конфигурации SSH-прокси в своих инфраструктурах. Своевременное применение корректирующих мер и обновление версий программного обеспечения позволят защититься от этого скрытного метода удаленного выполнения кода, который может быть использован для получения несанкционированного доступа к критически важным системам.
Эксперты по безопасности подчеркивают необходимость пересмотра существующих конфигураций SSH и внедрения практик безопасного кодирования при работе с внешними данными, которые могут содержать управляющие символы. Регулярный аудит конфигураций и мониторинг обновлений безопасности должны стать стандартной процедурой для всех организаций, использующих SSH-прокси в своей инфраструктуре.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2025-61984
- https://nvd.nist.gov/vuln/detail/CVE-2025-61984
- https://www.openwall.com/lists/oss-security/2025/10/06/1
- https://marc.info/?l=openssh-unix-dev&m=175974522032149&w=2
- https://www.openssh.com/releasenotes.html#10.1p1