В OpenSSH нашли уязвимость SSHole, ее уже используют: на каких серверах можно войти без пароля и что обновить
На части Linux-серверов в OpenSSH можно войти без пароля, если прислать слишком длинный. Исправление вышло 5 ноября, атаки начались в тот же день.
Хакеры используют уязвимость SSHole (CVE-2026-123158) в OpenSSH, чтобы войти на сервер без пароля. Срабатывает она не везде, а только в одной конфигурации: Linux на библиотеке musl, OpenSSH работает без PAM, вход по паролю включен. Под это попадает Alpine Linux, в том числе часть его официальных облачных образов для AWS и Azure. Исправление вышло 5 ноября в OpenSSH 10.6p2, а 9 ноября американское агентство по кибербезопасности CISA внесло уязвимость в каталог эксплуатируемых.
Как устроена дыра
В Linux вход по паролю для учетной записи можно заблокировать звездочкой вместо хеша в файле /etc/shadow. С 2016 года sshd хеширует присланный пароль даже для таких учетных записей, чтобы по времени ответа нельзя было подобрать имена пользователей. В musl функция crypt() на пароль длиннее 256 байт возвращает звездочку как признак ошибки. sshd сравнивает ее со звездочкой в /etc/shadow и считает проверку пройденной. Атакующему достаточно знать имя учетной записи и прислать пароль длиной от 257 до 1024 байт. Нужна еще хотя бы одна учетная запись с паролем в формате SHA-256 или SHA-512 crypt: из ее хеша sshd берет соль. Уязвимость нашел исследователь Озгюн Кюльтекин (Özgün Kültekin).
Что уже происходит
По данным BleepingComputer, код эксплойта появился примерно через четыре часа после выхода исправления, и попытки атак начались в тот же день, 5 ноября. Компания Previdian к 6 ноября подтвердила вход с правами root на своей ловушке, GreyNoise первый успешный взлом зафиксировала 7 ноября в 00:46 UTC. В атаках, которые видела GreyNoise, злоумышленники собирали сведения о системе, пытались прочитать хеши паролей и SSH-ключи root и дописать свои ключи в authorized_keys. В одной из них атакующий получил права root и поставил агент удаленного управления TAC Agent на Python, но связаться со своим сервером управления агент не смог. Срок исправления в каталоге CISA — 12 ноября.
Чья это ошибка
Разработчики OpenSSH считают, что первопричина лежит за пределами sshd, но атаку можно предотвратить на его стороне. Разработчик musl Рич Фелкер (Rich Felker) отвечает, что проблема в том, как вызывающая программа обрабатывает ответ crypt() при ошибке.
Что делать владельцам серверов
Обновите OpenSSH до 10.6p2 или до исправленного пакета дистрибутива и перезапустите sshd: Alpine выпустил исправленные пакеты. Если обновиться сразу нельзя, отключите вход по паролю (PasswordAuthentication no) и перезапустите sshd. По словам исследователя, системы на glibc (Debian, Ubuntu, Fedora), сборки с PAM, Dropbear и OpenBSD не затронуты, как и учетные записи с настоящим хешем пароля. Трекеры, клоаки, лендинги и боты обычно живут на арендованных VPS и в контейнерах. Их стоит проверить первыми: если сервер или образ собран на Alpine, sshd работает без PAM и вход по паролю включен, обновите OpenSSH сегодня или оставьте вход только по ключам. В атаках, которые видела GreyNoise, после входа искали хеши паролей и ключи. Взломанный сервер с трекером — это доступ к кампаниям, постбэкам и кабинетам партнерок.
Материалы по теме
Второй хостер за неделю: ESTT связал сбой с шифровальщиком и, по своим данным, запустил все виртуальные машины
Yaqin, через который на iPhone входили в MAX, пропал из App Store: что известно и что делать тем, кто успел его установить
Вставить свои 5 копеек: