Две уязвимости в NoPorts позволяли обойти защиту SSH-соединений
Специалисты компании UltraViolet Cyber обнаружили две критические уязвимости в реализации NoPorts — платформы удалённого доступа от компании Atsign, которая заменяет открытые SSH-порты на модель подключения с идентификацией и криптографической аутентификацией. Проблемы были найдены в компоненте sshnpd, написанном на языке C.
Как работает NoPorts и в чём была проблема
Исследователь UltraViolet Cyber по имени Aaron, известный под псевдонимом «Zonifer», раскрыл два критических изъяна в реализации C-демона (sshnpd) NoPorts от Atsign — платформы удалённого доступа, которая заменяет открытые SSH-порты моделью подключения с идентификацией и криптографической аутентификацией. Суть подхода NoPorts заключается в том, что SSH-сервис никогда не выставляется напрямую в сеть, а доступ к нему организуется через промежуточный релей с проверкой личности пользователя.
Однако именно в логике проверки прав возникла ошибка. Как показали результаты исследования, опубликованные 25 августа 2026 года, в C-реализации аутентификация и авторизация не проверялись совместно, из-за чего аутентифицированная, но неавторизованная личность могла получить доступ к функциям, предназначенным только для доверенных администраторов.
Как связка двух ошибок открывала путь к серверу
При объединении обеих уязвимостей злоумышленник, обладающий любым действительным идентификатором atSign (не обязательно авторизованным администратором), мог внедрить вредоносный SSH-ключ в файл authorized_keys целевой системы и получить доступ к её SSH-сервису через собственный релей NoPorts, несмотря на то что сервис никогда не был доступен из сети напрямую.
Корень проблемы разработчики UltraViolet Cyber описали так: причиной стала отсутствующая проверка авторизации на пути обработки запросов в сочетании с инвертированной функцией валидации, из-за которой проверка SSH-открытых ключей проходила в режиме «fail open», то есть пропускала запрос при ошибке вместо блокировки. Первый из двух дефектов исследователи охарактеризовали как отсутствующий шлюз авторизации в логике диспетчеризации запросов демона.
Реакция Atsign и статус исправления
Компания Atsign оперативно отреагировала на сообщение об уязвимостях. Отчёт об ошибках был подан 21 августа, исправленная версия вышла 25 августа, а запрос на выделение идентификатора CVE находится на рассмотрении. В целом с момента раскрытия проблемы до выхода патча прошло всего несколько дней — Atsign устранила проблему в течение четырёх дней после раскрытия, и хотя присвоение CVE ещё не завершено, организациям, использующим C-реализацию, рекомендуется рассматривать обновление как приоритетную задачу.
Специалисты UltraViolet Cyber уже начали работу по мониторингу возможных попыток эксплуатации: команда UVCyber Threat Intelligence and Detection Engineering (TIDE) приступила к внедрению механизмов обнаружения этой уязвимости и проведению поиска угроз в инфраструктуре Atsign у клиентов UVCyber.
Почему это важно
Случай с NoPorts показывает, что архитектурные решения, направленные на устранение классических рисков открытых SSH-портов, не гарантируют полной защиты от ошибок реализации. Даже платформа, изначально спроектированная как средство защиты от pre-authentication атак и эксплуатации уязвимостей нулевого дня в традиционных SSH-серверах, может содержать собственные логические изъяны, если проверки аутентификации и авторизации не синхронизированы должным образом. Организациям, использующим C-реализацию sshnpd, следует как можно скорее обновиться до исправленной версии.