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

Ошибка в 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-сервер. Перед этим следует проверить, что вход по ключу работает, и не закрывать текущую сессию до успешного нового подключения.

Сергей
Автор: Сергей
Пишу о кибербезопасности и информационных технологиях на простом и понятном языке
Комментарии:

Как мы обрабатываем данные: политика обработки персональных данных