Критическая ошибка OpenSSH: длинная строка вместо пароля открывает доступ к серверу

Разработчики OpenSSH экстренно закрыли уязвимость, позволяющую зайти на Linux-сервер без пароля, отправив специальную строку. В первую очередь проблема угрожает Alpine Linux и системам на библиотеке musl.
Суть ошибки — в неожиданном совпадении двух сигналов «ошибка». Функция crypt() в musl при получении строки длиннее 256 байт возвращает звёздочку '*' как флаг сбоя. Точно таким же символом в Linux часто помечают закрытый парольный вход — например, для пользователей, заходящих только по SSH-ключу. Сервер OpenSSH при аутентификации сравнивает соль из базы учётных данных с присланной строкой. Из-за логической уязвимости совпадение двух звёздочек засчитывается как успешная проверка, и злоумышленник получает доступ к аккаунту, который вообще не должен принимать вход по паролю. Для атаки достаточно знать имя пользователя и иметь сетевой доступ к SSH-порту. На момент публикации не зафиксировано случаев эксплуатации уязвимости в реальных условиях.
Уязвимость CVE-2026-123158 получила 8,1 балла по CVSS 3.1, команда OpenSSH назвала проблему критической. Исправление вошло в версию 10.6p2, Alpine Linux уже выпустила патчи для всех поддерживаемых веток. Эксплуатация возможна с первой попытки, без перебора. Исследователь Озгюн Кюльтекин проследил корни ошибки до изменений в musl от 2012 года и в самом OpenSSH от 2016-го. В зоне риска — конфигурации, где openssh-server собран без PAM и разрешён парольный вход. Системы на glibc, а также стандартный SSH-сервер OpenWrt Dropbear не подвержены атаке.
Опасный сценарий для сборок на Alpine Linux
Особенно уязвимы официальные облачные образы Alpine с пакетом tiny-cloud. В них по умолчанию присутствует учётная запись alpine с полем пароля в виде звёздочки. Атакующий может войти под ней, отправив строку длиной от 257 до 1024 байт, а затем немедленно повысить привилегии до root — Alpine разрешает doas без пароля. Учётные записи, заблокированные знаком '!', проблеме не подвержены. Некоторые безопасные образы становятся уязвимыми после того, как администратор добавляет хотя бы один обычный хеш пароля типа $5$ или $6$.
Как защитить серверы от несанкционированного входа
Разработчики рекомендуют обновить OpenSSH до версии 10.6p2 и перезапустить sshd. Патч запрещает считать аутентификацию успешной, если сохранённое значение короче четырёх символов. Если обновление невозможно, следует отключить парольный вход директивой PasswordAuthentication no, предварительно проверив доступ по ключу. Косвенным признаком взлома могут служить записи Accepted password в логах для учётных записей, где парольный вход был запрещён.
