Хакеры взламывают серверы на Alpine Linux через дыру SSHole в OpenSSH
Злоумышленники уже используют 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 только по ключу, и эта настройка закрывает атаку.
• Hackers exploit SSHole OpenSSH flaw to breach Linux systems - BleepingComputer
• SSHole (CVE-2026-123158) activity - GreyNoise
• sshd password bypass on musl-based systems - Özgün Kültekin
• OpenSSH 10.6p2 release notes - OpenSSH
• CVE-2026-123158 - Alpine Linux security tracker
• OpenSSH flaw lets attackers log into password-disabled Linux accounts - BleepingComputer