Уязвимость затрагивает реализацию программы getty, выводящей приглашение входа в терминале и запускающей процесс /bin/login для аутентификации пользователя. Уязвимость вызвана отсутствием разделения аргументов командой строки при запуске /bin/login, что позволяло указать опцию «-f» в имени пользователя, отключающую проверку пароля (например, можно ввести «-f root» вместо «root»). Проблема решена через добавление аргумента «—» перед полем с именем пользователя:
- execl(_PATH_LOGIN, _PATH_LOGIN, "-p", name, NULL); + execl(_PATH_LOGIN, _PATH_LOGIN, "-p", "--", name, NULL);
В качестве обходного пути для блокирования уязвимости рекомендуется использовать в finit внешнюю реализацию процесса getty, например,
аgetty. В дистрибутивах Debian 12, Ubuntu, Parrot, Raspbian и Trisquel пакеты с finit пока остаются без исправления уязвимости.
Cистема инициализации Finit (Fast init), развивается в качестве простой альтернативы SysV init и systemd, и получила распространение на встраиваемых системах. Проект основан на технологиях системы инициализации fastinit, используемой в Linux-прошивке нетбуков EeePC и примечательной очень быстрым процессом загрузки. Finit поддерживает уровни выполнения (runlevel) в стиле SysV init, автоматический перезапуск сервиса в случае сбоя, выполнение одноразовых обработчиков, запуск сервисов с учётом зависимостей и произвольных условий, прикрепление дополнительных обработчиков для запуска до или после выполнения сервиса, расширение функциональности через плагины, настройку ограничений через Cgroups v2.
Источник: http://www.opennet.ru/opennews/art.shtml?num=63171