ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
7 ноября
1610980 Топик полностью
DH (Сегодня, 08:04, просмотров: 73) ответил SciFi на С развитием иишечки взломов должно становиться всё больше и больше. Вот и опубликовання вчера дыра в OpenSSH + musl libc тоже была обнаружена при помощи ИИ.
Да, абсолютно актуальны, и как раз из-за использования библиотеки musl libc в Alpine Linux возникла одна из самых громких уязвимостей CVE-2026-123158 (получившая имя sshole). 

Это уникальный случай, когда дистрибутивы на базе стандартной glibc (Ubuntu, Debian, CentOS) вообще не подвержены этой проблеме, в то время как Alpine Linux в дефолтной конфигурации оказался под прямой угрозой.

Суть уязвимости: Как архитектура musl libc подвела OpenSSH

Ошибка кроется не в самом коде OpenSSH, а в логике взаимодействия SSH-сервера с библиотекой musl libc при проверке паролей:

1. Поведение musl libc: Начиная с 2012 года, встроенная в musl функция шифрования паролей crypt() в случае любой ошибки возвращает строку, состоящую из одного символа — * (вместо значения NULL, как в glibc). Кроме того, алгоритмы хэширования в musl жестко ограничивают максимальную длину пароля в 256 байт. Всё, что длиннее, вызывает ошибку.

2. Поведение OpenSSH: Когда злоумышленник пытается войти по SSH и отправляет слишком длинный пароль (от 257 до 1024 символов), musl libc не может его обработать, выдает ошибку и возвращает строку *.

3. Логическая ловушка: OpenSSH сравнивает полученную от библиотеки строку (*) со значением в файле /etc/shadow. В Alpine Linux у многих служебных аккаунтов (или у пользователей, которые авторизуются только по SSH-ключам) в поле пароля изначально записан символ * (что означает «пароль не задан / вход по паролю заблокирован»).

Итог: Строка * от функции мусл совпадает со значением * в конфигурации аккаунта. OpenSSH считает, что пароль введен верно, и пропускает атакующего в систему без пароля и ключа.

Условия, при которых Alpine Linux уязвим:

Атака сработает, если на вашей системе одновременно выполняются следующие условия:

• Используется openssh-server, собранный без поддержки модуля PAM (в Alpine Linux это дефолтная сборка).

• В настройках SSH разрешен вход по паролю (PasswordAuthentication yes — включено по умолчанию).

• В системе есть аккаунты, у которых заблокирован пароль (в /etc/shadow стоит *), но разрешен вход по ключам (например, дефолтный юзер alpine на облачных образах AWS/Azure или root в некоторых конфигурациях).

Как защититься прямо сейчас?

Разработчики Alpine Linux оперативно выпустили исправления для всех веток, начиная с древней 3.16 и заканчивая актуальными 3.24 и Edge.

1. Обновите пакеты на «живой» системе или обновите Docker-образ:

apk upgrade -U -a

Важно: После обновления пакета обязательно перезапустите службу SSH, иначе в памяти останется старый уязвимый процесс:

rc-service sshd restart

2. Временный костыль (если нельзя обновиться прямо сейчас):

Полностью отключите вход по паролям в файле /etc/ssh/sshd_config:

PasswordAuthentication no

После этого перезапустите SSH-сервер. При авторизации исключительно по SSH-ключам данная уязвимость становится невозможной.