- Обнаружена критическая уязвимость (*sshole) в связке OpenSSH и musl libc, позволяющая получить доступ к системам Linux.
- Атака возможна при вводе пароля длиной от 257 до 1024 символов для учетных записей без пароля.
- Затронуты системы, использующие musl libc (например, Alpine Linux), OpenSSH без PAM и с включенной парольной аутентификацией.
Критическая уязвимость в OpenSSH и musl libc: Обход аутентификации в Alpine Linux
Недавнее обнаружение уязвимости, получившей название *sshole (или SSHole) и отслеживаемой как CVE-2026-123158 с оценкой CVSS 8.1, позволяет злоумышленникам обойти аутентификацию в некоторых системах Linux. Эта уязвимость затрагивает взаимодействие между OpenSSH и легковесной библиотекой C - musl libc, которая используется в таких дистрибутивах, как Alpine Linux. Эксплуатация возможна при определенных условиях, включая использование OpenSSH без Pluggable Authentication Modules (PAM) и с включенной аутентификацией по паролю.
Механизм атаки и условия эксплуатации
Уязвимость проявляется, когда функция crypt() в musl libc возвращает символ звездочки (*) вместо ожидаемого NULL в случае ошибки при вычислении хеша пароля. OpenSSH затем ошибочно интерпретирует эту звездочку как действительный хеш для учетных записей, которые не должны иметь пароля (обозначенных * в поле пароля в /etc/shadow). Ввод пароля длиной от 257 до 1024 символов запускает эту цепочку ошибок, позволяя получить доступ к учетным записям, предназначенным для беспарольной аутентификации, например, через SSH-ключи.
| Условие | Описание |
|---|---|
| Библиотека C | musl libc (вместо GNU C library) |
| Сервис SSH | OpenSSH (версии до 10.6p2) |
| Аутентификация | Парольная аутентификация включена |
| Модули PAM | PAM отключен |
| Целевые аккаунты | Имеют «*» в поле пароля (например, root, key-only) |
| Дополнительное условие | Хотя бы один аккаунт с действительным хешем SHA-256/512 |
| Длина пароля | От 257 до 1024 символов |
Затронутые системы и рекомендации по устранению
Наибольшую обеспокоенность вызывает Alpine Linux, поскольку он широко используется в контейнерах Docker/Kubernetes/Proxmox, облачных виртуальных машинах и встраиваемых устройствах. Дистрибутивы Buildroot, Yocto и Void Linux также могут быть затронуты. OpenWRT по умолчанию использует Dropbear, но пользователи, установившие OpenSSH, также находятся в зоне риска.
OpenSSH оперативно выпустил исправление в версии 10.6p2. Всем администраторам настоятельно рекомендуется немедленно обновить свои системы. В качестве временной меры можно явно установить PasswordAuthentication no в конфигурационном файле OpenSSH и перезапустить службу. Хотя большинство установок Alpine не доступны из интернета напрямую, злоумышленник внутри корпоративной сети, домашней лаборатории или облачной инфраструктуры может воспользоваться этой уязвимостью.
Для получения дополнительной информации о кибербезопасности и последних уязвимостях, вы можете ознакомиться с другими статьями PROSTO24.
Для системных администраторов и разработчиков, использующих Alpine Linux или другие дистрибутивы на базе musl libc с OpenSSH, немедленное обновление до OpenSSH 10.6p2 или отключение аутентификации по паролю является критически важным. Эта уязвимость подчеркивает важность регулярного аудита конфигураций безопасности, особенно в средах, где используются легковесные библиотеки и специализированные настройки. Невыполнение этих шагов может привести к несанкционированному доступу к критически важным системам.
Интересная уязвимость, но насколько реально её эксплуатировать в продакшене? Требуется довольно специфическая комбинация: musl libc, OpenSSH без PAM, включенная парольная аутентификация и аккаунты с ‘*’ в shadow. К тому же, длина пароля от 257 символов. Кажется, что большинство хорошо настроенных систем уже не подпадут под эти критерии, или я что-то упускаю?