Уязвимость в OpenSSH позволяет обойти защиту паролем на Linux с musl
Исследователи обнаружили баг *sshole, позволяющий войти в аккаунты Linux с запрещенным паролем, используя сверхдлинный пароль. Узнайте, как защитить систему.

Исследователь безопасности Озгюн Култекин раскрыл критическую уязвимость в OpenSSH, получившую кодовое название *sshole. Этот баг затрагивает дистрибутивы Linux, использующие библиотеку musl C, и позволяет злоумышленникам авторизоваться в системах, где вход по паролю был намеренно отключен через файл /etc/shadow.
- Уязвимость затрагивает системы на базе musl: Alpine Linux, OpenWrt, Buildroot и Yocto.
- Проблема возникает при отправке сверхдлинного пароля на аккаунты, где в качестве хэша установлен символ *.
- Атака возможна только при отключенной аутентификации PAM.
- Ошибка присутствует в коде с 2016 года и связана с патчем для CVE-2016-6210.
Причины возникновения бага *sshole Уязвимость уходит корнями в 2016 год, когда в OpenSSH внесли изменения для предотвращения перечисления имен пользователей (username enumeration). Согласно логике того времени, OpenSSH начал выполнять хэширование пароля даже для аккаунтов, где вход по паролю заблокирован (обозначен символом *). Проблема заключается в специфике функции crypt() в библиотеке musl C. Когда введенный пароль превышает 256 байт, функция возвращает символ *, что совпадает со значением в файле shadow для заблокированных аккаунтов. В результате OpenSSH ошибочно интерпретирует совпадение и разрешает доступ, если злоумышленник отправит специально подготовленный пароль.
Риски для Alpine Linux и других систем Наибольшую опасность ситуация представляет для образов Alpine Linux, используемых в облачных инфраструктурах AWS и Azure. В них часто присутствует учетная запись 'alpine' с правами 'doas' без необходимости ввода пароля. Если злоумышленник воспользуется этой уязвимостью, он может получить права root в скомпрометированной облачной среде. Важно отметить, что системы на базе glibc, такие как Ubuntu, Debian или Fedora, а также системы с активной поддержкой PAM, не подвержены данной атаке. Уязвимость была обнаружена с помощью ИИ-агентов, которые провели тысячи тестов различных конфигураций OpenSSH.
Как защитить свой сервер Исправление уже доступно в версии OpenSSH 10.6p2. Администраторам рекомендуется немедленно обновить пакеты с помощью команды apk upgrade openssh. Если обновление невозможно прямо сейчас, рекомендуется явно отключить аутентификацию по паролю в настройках SSH, установив параметр PasswordAuthentication no в файле конфигурации и перезапустив службу. Для проверки серверов на предмет уже совершенных атак администраторам следует изучить логи аутентификации SSH. Если в логах зафиксирован успешный вход по паролю для учетных записей, у которых в /etc/shadow установлен символ *, это является явным признаком эксплуатации уязвимости.
Значение для IT-инфраструктуры Для системных администраторов и DevOps-инженеров, работающих с легковесными контейнерами и встроенными системами, это напоминание о критичности патчинга и важности выбора библиотек. Хотя musl C обеспечивает легкость и компактность Alpine, подобные расхождения в реализации стандартных функций (как crypt()) могут привести к серьезным последствиям для безопасности. В условиях современной инфраструктуры даже "закрытая" дверь может оказаться открытой из-за архитектурных особенностей низкоуровневых систем.
Источник: BleepingComputer



