Ошибка в OpenSSH и musl позволяет обходить проверку пароля в Alpine Linux

Изображение: OpenAI
Ошибка в связке OpenSSH и библиотеки musl позволяет обходить проверку пароля в Alpine Linux и некоторых других дистрибутивах, сообщает Tom’s Hardware. Зная имя учётной записи без пароля, злоумышленник может войти в систему, введя произвольную строку длиной от 257 до 1024 байт.
Разработчики OpenSSH 5 ноября выпустили версию 10.6p2, которая блокирует такой способ входа. Alpine подготовила исправленные пакеты начиная с ветки 3.16, включая уже неподдерживаемые версии. Об атаках с использованием уязвимости пока не сообщалось.
Атакующему нужен сетевой доступ к SSH-серверу, который проверяет пароли без PAM и разрешает парольный вход. В поле пароля целевой учётной записи должна стоять звёздочка, а хотя бы у одной другой локальной записи — хеш с префиксом $5$ или $6$. Стандартный пакет OpenSSH в Alpine собран без PAM, а парольный вход включён по умолчанию.
Если ввести слишком длинную строку, функция crypt() в musl возвращает звёздочку как признак ошибки. OpenSSH сравнивает её со звёздочкой в поле пароля и разрешает вход.
Проверить настройки стоит и в других системах на musl — возможность атаки зависит от конфигурации:
- OpenWrt, если установлен OpenSSH вместо стандартного Dropbear, которого ошибка не затрагивает;
- Buildroot;
- Yocto;
- Void Linux.
Администраторам следует установить исправления и перезапустить SSH-сервер: обновление пакета в Alpine само по себе не перезапускает службу. Если обновиться пока нельзя, можно отключить парольный вход настройкой PasswordAuthentication no и перезапустить SSH-сервер. Перед этим следует проверить, что вход по ключу работает, и не закрывать текущую сессию до успешного нового подключения.



