Tailscale SSH: уязвимость позволяет получить root-доступ к другим серверам
Уязвимость в Tailscale SSH позволяет получить root-доступ к другим серверам
Исследовательница Эрика Виндш из Cyberdione Labs обнаружила уязвимость в Tailscale SSH. Атакующий, получивший контроль над одним устройством в сети Tailscale, может использовать его для получения root-доступа к другим серверам. Для эксплуатации уязвимости требуется настроенный Tailscale SSH с разрешенным перенаправлением портов и наличие скомпрометированного устройства, которое имеет право подключения к целевому серверу согласно правилам доступа сети. Исследователь протестировала версии Tailscale 1.104.2 и Headscale 0.29.5. На момент публикации вендор не выпустил бюллетень безопасности, CVE-идентификатор или исправление. Tailscale подтвердила получение отчета и заявила, что уже работает над устранением проблем совместно с внешними специалистами. Компания пока определяет, какие конфигурации затронуты, и не рекомендует отключать Tailscale SSH. Уязвимость получила название Tailworm.
Tailscale SSH использует правила доступа вместо паролей и ключей
Tailscale SSH отличается от стандартных SSH-серверов. Он идентифицирует подключающееся устройство, а не проверяет пароль или ключ пользователя. Решение о разрешении SSH-сессии принимает единое правило доступа. Атака не требует кражи паролей или ключей. Злоумышленнику достаточно получить первоначальный доступ к одному устройству. Источником такого доступа могут быть уязвимые веб-приложения, скомпрометированные пакеты ПО, фишинг или украденные учетные данные. Tailscale не является источником первоначального компрометирования.
Уязвимость затрагивает локальные установки Headscale и облачные сервисы
Возможности администратора по устранению риска зависят от способа развертывания сети. В облачном сервисе Tailscale перенаправление портов можно отключить для каждого правила отдельно. В Headscale версии 0.29.5 отключить перенаправление портов невозможно. Исследователь рекомендует рассматривать каждое SSH-разрешение в Headscale как предоставление root-доступа к целевому серверу. В ходе лабораторных тестов было продемонстрировано несколько векторов атаки. Стандартное перенаправление портов позволило процессу Tailscale на уровне root подключиться к системному сокету, доступному только root. Это позволило получить root-доступ и прочитать файл паролей системы. Второй метод позволял выполнять команды от имени root путем подмены сокета, принадлежащего root. Третий метод обходил проверку безопасности, ограничивающую доступ к файлам при перенаправлении. Это позволило захватить ключ, используемый для регистрации новых устройств, и использовать его для подключения собственного устройства атакующего к сети как доверенного сервера. Последний этап атаки сработал только в сетях без функции Tailscale Tailnet Lock. В сетях с включенной функцией секреты перехватывались в процессе передачи, но финальный шаг не был завершен. Исследователь описывает результат как "червеобразный" (wormable). В лабораторных условиях скомпрометированное устройство могло распространиться на все устройства, разрешенные правилами доступа, за менее чем одну секунду на шаг, без паролей, украденных ключей и действий пользователя. Отмечается, что "сетка преобразует один обычный вход в привилегированный доступ ко всему парку машин со скоростью машины". Распространение было измерено в лаборатории, а не зафиксировано в реальных сетях. Исследователь выделила два фактора, сдерживающих распространение: правила доступа, написанные как одиночные пары источник-назначение, и аппаратные ключи устройств, такие как TPM или Secure Enclave. Некоторые эксперты поставили под сомнение описание "червеобразности", другие назвали эскалацию привилегий серьезной проблемой. SSH-проблема является одной из 11 обнаруженных в отчете. Другие находки касаются коннекторов приложений Tailscale, функции serve, ретранслятора DERP и Headscale. Исследователь считает, что эскалация привилегий через SSH "вызывает беспокойство", но находка, связанная с коннекторами приложений (экспериментальная функция conn25), может быть "более значимой для некоторых организаций". Эта функция позволяет разрешенному пользователю направлять трафик к неутвержденным командами безопасности назначениям, включая сервис метаданных облачного провайдера, который может выдавать учетные данные сервера. Все находки основаны на отчете Виндш. Другие исследователи публично не воспроизводили результаты, а Tailscale не подтвердил конкретные технические утверждения. Код доказательства концепции не является публичным и был предоставлен только контактному лицу Tailscale по безопасности. Виндш описала раскрытие как "сообщенное, но не скоординированное". Она предоставила Tailscale отчет и код доказательства концепции до публичного анонса, отправив их контактному лицу по безопасности в субботу. Ранее она выражала опасения по поводу архитектуры Tailscale генеральному директору компании и публично разместила хеш файла, посоветовав пользователям отключить Tailscale SSH. Проблема является последней в серии уязвимостей в Tailscale. Ранее в 2026 году компания исправила несколько уязвимостей Tailscale SSH и обработки серверных сокетов, включая ту, где перенаправление Unix-сокета SSH могло достичь привилегированного сокета, в версии 1.98.9.
Обновите правила доступа и отключите перенаправление портов
Поскольку патча нет, доступны следующие действия: пересмотр правил доступа Tailscale SSH. Рекомендуется писать правила как одиночные пары "источник-назначение", указывающие одно устройство и одну цель, и удалять общие правила, предоставляющие доступ по идентификатору или тегу. Отчет называет правила для каждой пары единственным контролем, остановившим распространение в тестах. Отключите перенаправление портов SSH, где это возможно. В облачном сервисе Tailscale это настройка для каждого правила. В Headscale версии 0.29.5 отключить перенаправление невозможно, поэтому рассматривайте каждое SSH-разрешение как предоставление root-доступа. Удалите разрешения коннектора приложений с устройств, которым они не нужны. Удалите любые перенаправления tailscale serve, указывающие на Unix-сокет. Включите истечение срока действия ключей узла (node-key expiry), чтобы украденный ключ устройства не оставался действительным навсегда. Если устройство скомпрометировано, удалите его из плоскости управления. Переустановка системы не отзывает ключи, которые атакующий мог скопировать. Tailscale также предлагает включить режим проверки SSH (SSH check mode), который добавляет шаг входа перед началом сессии, и включить автоматические обновления. Режим проверки не устраняет эскалацию привилегий, а лишь добавляет дополнительный барьер.
Источник