Хакеры взламывают серверы на Alpine Linux через дыру SSHole в OpenSSH

09.11.2026 4 мин 7

Злоумышленники уже используют SSHole (CVE-2026-123158, опасность 8,1 из 10). Это дыра в OpenSSH, через которую на часть Linux-серверов можно войти с любым паролем длиннее 256 символов. Она работает в системах на библиотеке musl, прежде всего в Alpine Linux. Компания GreyNoise, которая следит за атаками в интернете, зафиксировала первый успешный взлом 7 ноября в 00:46 UTC, примерно через 40 часов после выхода исправления. Войдя в систему, взломщики искали пароли и ключи, добавляли свои SSH-ключи, а в одном случае поставили агент удалённого управления, пишет BleepingComputer.

Коротко

  • Уязвимы: OpenSSH на Linux с musl (Alpine, OpenWrt, Buildroot, Yocto) при выключенном PAM и включённом входе по паролю. Alpine именно так настроен по умолчанию.
  • Не уязвимы: Debian, Ubuntu, Fedora и другие дистрибутивы на glibc, системы с PAM, SSH-сервер Dropbear и OpenBSD.
  • Исправление: OpenSSH 10.6p2 или обновлённый пакет вашего дистрибутива. До обновления выключите вход по паролю.

Как работает обход

В Linux звёздочка * в поле пароля в /etc/shadow означает, что по паролю в эту учётную запись войти нельзя вообще. Alpine ставит её у root и у пользователей, которые входят только по ключу. Исследователь Озгюн Кюльтекин из компании Wakefield, сообщивший об ошибке, нашёл её корень в изменении musl 2012 года: если функция хеширования пароля не справляется, она возвращает * вместо ошибки. Не справляется она с любым паролем длиннее 256 байт. Очень длинный пароль превращается в *, совпадает с заблокированной записью, и sshd пускает. С включённым PAM sshd так хеши не сравнивает, поэтому такие системы в безопасности.

Для атаки нужны четыре условия сразу: sshd собран с musl, PAM выключен, вход по паролю разрешён и хотя бы у одной учётной записи в поле пароля стоит *. В Alpine первые три условия выполняются по умолчанию в пакете openssh-server, а у root звёздочка стоит с версии 3.16. В официальных образах Alpine для AWS и Azure есть ещё пользователь alpine, который может выполнять команды от root без пароля, так что вход под ним даёт полный контроль.

Что делали взломщики

OpenSSH выпустил версию 10.6p2 с исправлением 5 ноября. В тот же день вышел разбор исследователя, а меньше чем через час код эксплойта появился на GitHub. GreyNoise насчитала 16 успешных цепочек атак с шести IP-адресов на системах под своим наблюдением и подчёркивает, что это лишь часть активности. Взломщики проверяли, не в контейнере ли они, запрашивали облачные сервисы метаданных, пытались прочитать SSH-ключи root и /etc/shadow и прописывали свои ключи в authorized_keys для root и пользователя alpine, чтобы сохранить доступ.

Одна группа получила права root, поменяла настройки DNS, запустила второй, скрытый SSH-сервер и установила TAC Agent - программу на Python с комментариями и сообщениями на китайском, которая умеет выполнять команды и передавать файлы. Зарегистрироваться на своём управляющем сервере tac.vpnla[.]org агент так и не смог и заданий не получил. Попытки атак видели также компании Previdian и Defused, а watchTowr связал уязвимость с ботнетами и скрытым майнингом.

Как проверить свой сервер

  • Узнайте, что стоит на сервере: cat /etc/os-release. Если это Alpine или другая система на musl, читайте дальше. Серверы на Ubuntu и Debian этой ошибке не подвержены.
  • Обновитесь: в Alpine apk upgrade openssh. Исправленные пакеты вышли для веток с 3.19 по 3.24 и edge, по данным трекера безопасности Alpine.
  • Если входите по ключу, выключите вход по паролю: PasswordAuthentication no в настройках sshd и перезапуск sshd. Это закрывает дыру и до обновления.
  • Поищите следы: успешные входы по паролю (grep "Accepted password" /var/log/messages) в учётные записи со * в /etc/shadow, чужие ключи в authorized_keys, файлы /opt/py3/tac_agent.py и /etc/init.d/tac-agent, изменения в /etc/hosts и /etc/resolv.conf, лишний SSH-сервер на нестандартном порту (ss -tlnp покажет открытые порты).
  • Если что-то нашлось, считайте сервер взломанным: переустановите систему и смените все пароли и ключи, которые на нём хранились.

Это касается всех, кто держит личный VPN на дешёвом VPS: компактные образы Alpine для этого популярны. Большинство домашних роутеров с OpenWrt используют для SSH Dropbear и не затронуты, если владелец не заменил его на OpenSSH. В нашей инструкции по настройке VPS уже советуем входить по SSH только по ключу, и эта настройка закрывает атаку.

opensshalpine linuxlinuxуязвимостьхакерывзломкибербезопасностьсерверыvpssshgreynoise

Читайте также