Суть уязвимости SSHhole
Обнаружена критическая уязвимость, получившая название SSHhole, которая затрагивает системы на базе musl libc и OpenSSH. Проблема заключается в том, что если для пользователя установлен пустой пароль (что является настройкой по умолчанию во многих дистрибутивах, таких как Alpine Linux), злоумышленник может получить доступ к системе, не зная реального пароля. Достаточно ввести в поле ввода пароля любую строку длиной более 256 символов.
Атака работает благодаря цепочке ошибок: функция crypt() в musl libc возвращает символ * (заглушку для пустого пароля) как условие ошибки, а OpenSSH некорректно интерпретирует это значение при сравнении с хешем, особенно при получении слишком длинного входного сигнала.
Затронутые системы и риски
Наибольшую опасность уязвимость представляет для Alpine Linux, который часто используется в контейнерах Docker, Kubernetes, Proxmox, облачных виртуальных машинах и встроенных устройствах. По умолчанию в Alpine включена аутентификация по паролю и не используется PAM, что делает систему уязвимой «из коробки».
Также под угрозой находятся дистрибутивы OpenWRT, Buildroot, Yocto и Void Linux. В OpenWRT по умолчанию используется Dropbear, но уязвимость возникает, если администратор устанавливает OpenSSH.
Технические детали и условия эксплуатации
Для успешной атаки необходимо совпадение нескольких условий. Ниже приведена таблица с ключевыми параметрами уязвимой конфигурации:
| Параметр | Значение / Описание |
|---|---|
| Библиотека C | musl libc (вместо glibc) |
| SSH-сервер | OpenSSH |
| Аутентификация | Парольная включена (PasswordAuthentication yes) |
| PAM | Не используется |
| Хеш пароля | SHA-512/256 или пустой пароль (placeholder «*») |
| Длина пароля для атаки | > 256 символов |
Рекомендации по устранению
Разработчики OpenSSH и musl libc уже выпустили исправления, хотя и перекладывают ответственность друг на друга. В качестве немедленной меры защиты рекомендуется:
- Обновить пакеты OpenSSH и musl libc до последних версий.
- Временно отключить аутентификацию по паролю, добавив или изменив строку
PasswordAuthentication noв конфигурационном файле OpenSSH, после чего перезапустить службу.
Хотя многие серверы на базе Alpine не доступны из интернета напрямую, уязвимость критична для внутренних сетей, корпоративных сред и облачных инфраструктур, где один скомпрометированный узел может стать точкой входа для атакера.
Источник: Tom's Hardware ↗
