Уязвимость sshhole позволяет войти в систему без пароля на базе musl

Критическая ошибка взаимодействия между OpenSSH и библиотекой musl libc позволяет атакующим получить доступ к учётным записям с заблокированным паролем, передавая строку длиной более 256 символов. Проблема затрагивает системы без PAM, такие как Alpine Linux и OpenWrt, и была устранена в обновлении OpenSSH 10.6p2.

Уязвимость эксплуатирует ситуацию, когда функция crypt() библиотеки musl возвращает символ «*» при превышении лимита длины пароля в 256 байт, что совпадает со значением в файле /etc/shadow для учётных записей без пароля.

Атакующий может успешно пройти аутентификацию, передав пароль длиной от 257 до 1024 байт, так как сервер принимает ошибку вычисления хеша за успешное совпадение.

Проблема возникла из-за изменений в 2012 году, ограничивших длину пароля для защиты от DoS, и в 2016 году, когда OpenSSH начал использовать соль от других учётных записей для защиты от тайминг-атак.

Затронуты дистрибутивы Linux на базе musl, не использующие PAM, включая Alpine, OpenWrt, Buildroot и Yocto, а также множество образов Docker.

В системах с glibc, при использовании PAM или на базе OpenBSD уязвимость не проявляется, так как механизм обработки ошибок отличается.

Первоисточники

Публикации события

3

Поиск по Loople

Назад