OpenSSH: обход пароля при входе по SSH
Что случилось
В OpenSSH до версии 10.6p2 включительно обнаружен баг, позволяющий войти на сервер с произвольным паролем. Проблема затрагивает системы на базе musl libc без PAM — в первую очередь Alpine Linux, популярную у хостинг-провайдеров для контейнеров и лёгких VPS.
Суть: при проверке пароля длиной от 256 до 1024 символов сервер ошибочно интерпретирует его как хеш, что при определённой конфигурации учётных записей приводит к успешной аутентификации с любым паролем из этого диапазона.
Кого касается
- Серверы на Alpine Linux и других дистрибутивах с musl libc без PAM
- Конфигурации с включённой парольной аутентификацией (PasswordAuthentication yes)
- Учётные записи с паролями, не использующие ключи SSH
Если на вашем VPS стоит Debian, Ubuntu, CentOS или другая glibc-система — угроза не актуальна. Риск максимален для контейнеров и минимальных образов, где часто выключают PAM ради экономии ресурсов.
Что делать
1. Обновите OpenSSH
Для Alpine Linux:
apk update && apk upgrade openssh
Проверьте версию после обновления — нужна 10.6p2 или новее.
2. Временная защита, если обновление невозможно
- Отключите парольную аутентификацию:
PasswordAuthentication noв/etc/ssh/sshd_config - Перейдите на ключи SSH для всех пользователей
- Ограничьте доступ по IP через firewall
3. Проверьте логи
Поищите подозрительные успешные входы с необычными паролями:
grep "Accepted password" /var/log/auth.log
При подозрении на взлом смените все пароли и ключи.