Суть уязвимости: 257 байт вместо пароля
Разработчики OpenSSH выпустили экстренный патч 10.6p2, закрывающий ошибку, известную как SSHhole. Уязвимость позволяла злоумышленнику получить доступ к учётной записи, у которой пароль отключён (в файле /etc/shadow стоит символ *), просто отправив строку длиной от 257 до 1024 байт.
Механизм сбоя работает на стыке двух компонентов:
- musl libc: функция
crypt()отбрасывает пароли длиннее 256 байт и возвращает ошибку, кодируемую как*. - OpenSSH без PAM: сервер сравнивает хеш введённого пароля с записью в
/etc/shadow. При совпадении*(ошибка musl и отключённый пароль) аутентификация считалась успешной.
Кто в зоне риска
Проблема не универсальна. Она проявляется только при строгом сочетании условий: Linux, библиотека musl, OpenSSH без PAM, включённый вход по паролю и наличие целевой учётной записи с *. Ниже приведена матрица совместимости:
| Компонент / Дистрибутив | Статус уязвимости | Примечание |
|---|---|---|
| Alpine Linux | Высокий риск | Стандартный пакет openssh-server собран без PAM. Затронуты образы для AWS/Azure (учётная запись alpine). |
| Debian / Ubuntu / Fedora | Защищены | Используют glibc, где поведение crypt() отличается. |
| OpenWrt | Защищены (по умолчанию) | Используется Dropbear. Риск появляется только после ручной установки OpenSSH. |
| Buildroot / Yocto | Под риском | Зависит от выбора разработчиками связки musl + OpenSSH без PAM. |
История и масштаб
Уязвимость существовала в коде OpenSSH начиная с версии 7.3p1 (выпуск 2016 года), но оставалась незамеченной 10 лет. Исследователь Озгюн Кюльтекин (Wakefield) обнаружил проблему 3 ноября 2026 года, протестировав около 17 600 конфигураций. Патч был подготовлен менее чем за час после уведомления.
Что делать администраторам
- Обновить OpenSSH до версии 10.6p2 (или актуальных версий Alpine 3.21.10, 3.22.8, 3.23.8, 3.24.4).
- Перезапустить сервис sshd после установки патча (обновление не подменяет запущенный процесс).
- Временная мера: если обновление невозможно, отключите парольный вход директивой
PasswordAuthentication noвsshd_config, убедившись предварительно в работоспособности SSH-ключей. - Аудит логов: проверьте журналы на наличие записей
Accepted passwordдля аккаунтов с*в/etc/shadow.
Эксплойт и проверочный скрипт уже опубликованы исследователем, поэтому угроза носит оперативный характер, несмотря на отсутствие зафиксированных случаев эксплуатации в дикой природе на момент 6 ноября.
Источник: Securitylab ↗
