Пароль длиной в несколько сотен символов стал универсальным пропуском на некоторые Linux-серверы. Разработчики OpenSSH 5 ноября экстренно выпустили версию 10.6p2 после обнаружения ошибки, позволяющей удалённо войти в учётную запись, для которой вообще не задан пароль. При выполнении условий атаки достаточно знать имя пользователя и иметь сетевой доступ к SSH.
Уязвимость CVE-2026-123158 получила 8,1 балла по CVSS 3.1, а команда OpenSSH назвала проблему критической. В зоне риска находятся системы Alpine Linux с сервером openssh-server без PAM, механизма проверки учётных данных. Парольный вход должен быть разрешён, а на машине должна существовать хотя бы одна учётная запись с хешем пароля типа $5$ или $6$.
Механизм связан с одним символом. Поле пароля со знаком «*» обычно запрещает вход по паролю. При проверке такого аккаунта OpenSSH берёт соль, компонент хеша, у другого пользователя. Однако функция crypt() в библиотеке musl при пароле длиннее 256 байт возвращает «*» как сигнал ошибки. OpenSSH принимает совпадение двух звёздочек за верный пароль. Атаке подходит строка от 257 до 1024 байт.
Проблема особенно опасна для пользователей, которым разрешено входить только по SSH-ключу. У таких аккаунтов поле пароля нередко содержит «*», но при уязвимой конфигурации длинная строка обходит ограничение. Alpine Linux подтвердила, что попытка проходит с первого подключения и не требует перебора. Учётные записи, заблокированные знаком «!», подобным способом не открываются.
В официальных облачных образах Alpine с tiny-cloud предусмотрена учётная запись alpine, способная запускать команды с правами администратора через doas без дополнительного пароля. Некоторые образы становятся уязвимыми после появления на сервере хотя бы одного обычного хеша пароля. Тогда атакующий может сначала войти как alpine, а затем повысить права до root.
Ошибка возникает при работе musl без PAM и не распространяется на системы с glibc, включённой проверкой через PAM либо отключённой парольной аутентификацией. OpenWrt, Buildroot и Yocto тоже используют musl в отдельных конфигурациях, но наличие библиотеки само по себе не делает сервер уязвимым. Стандартный SSH-сервер OpenWrt Dropbear описанным способом не атакуется.
Озгюн Кюльтекин, обнаруживший ошибку, проследил цепочку до изменений musl в 2012 году и OpenSSH в 2016-м. Ранее разработчики уже исправляли другую ошибку проверки прав в версии 10.3, однако нынешняя брешь связана с паролями. Новый патч запрещает считать успешным совпадение, если сохранённое значение короче четырёх символов. Случаи эксплуатации в реальных сетях пока не подтверждены.
Alpine выпустила патчи для веток 3.16–3.24 и edge. Администраторам рекомендовали обновить OpenSSH и перезапустить sshd, иначе старая версия продолжит работать. Если исправление недоступно, нужно отключить парольный вход настройкой PasswordAuthentication no, заранее проверив доступ по ключу. О возможном взломе могут говорить записи Accepted password для учётных записей без пароля.