После шести месяцев разработки представлен релиз OpenSSH 8.9, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP. В новой версии в sshd устранена уязвимость, потенциально позволяющая получить доступ без аутентификации. Проблема вызвана целочисленным переполнением в коде аутентификации, но эксплуатация возможна только в сочетании с другими логическими ошибками в коде.
В текущем виде уязвимость не эксплуатируема при включении режима разделения привилегий, так как её проявление блокируют отдельные проверки, выполняемые в коде отслеживания разделения привилегий. Режим разделения привилегий активирован по умолчанию в 2002 году, начиная OpenSSH 3.2.2, и является обязательным начиная с выпуска OpenSSH 7.5, опубликованного в 2017 году. Кроме того, в переносимых версиях OpenSSH начиная с выпуска 6.5 (2014 год) уязвимость блокируется компиляцией с включением флагов защиты от целочисленных переполнений.
Другие изменения:
В текущем виде уязвимость не эксплуатируема при включении режима разделения привилегий, так как её проявление блокируют отдельные проверки, выполняемые в коде отслеживания разделения привилегий. Режим разделения привилегий активирован по умолчанию в 2002 году, начиная OpenSSH 3.2.2, и является обязательным начиная с выпуска OpenSSH 7.5, опубликованного в 2017 году. Кроме того, в переносимых версиях OpenSSH начиная с выпуска 6.5 (2014 год) уязвимость блокируется компиляцией с включением флагов защиты от целочисленных переполнений.
Другие изменения:
- В переносимой версии OpenSSH в sshd удалена встроенная поддержка хэширования паролей с использованием алгоритма MD5 (для возвращения допускается связывание с внешними библиотеками, такими как libxcrypt).
- В ssh, sshd, ssh-add и ssh-agent реализована подсистема для ограничения пересылки и использования ключей, добавленных в ssh-agent. Подсистема позволяет задавать правила, определяющие как и где можно использовать ключи в ssh-agent. Например, для добавления ключа, который может быть использован только для проведения аутентификации при подключении любого пользователя к хосту scylla.example.org, пользователя perseus к хосту cetus.example.org и пользователя medea к хосту charybdis.example.org с перенаправлением через промежуточный хост scylla.example.org, можно использовать следующую команду:
$ ssh-add -h "perseus@cetus.example.org" \
-h "scylla.example.org" \
-h "scylla.example.org>medea@charybdis.example.org" \
~/.ssh/id_ed25519
- В ssh и sshd в список KexAlgorithms, определяющий порядок выбора методов обмена ключами, по умолчанию добавлен гибридный алгоритм "sntrup761x25519-sha512@openssh.com" (ECDH/x25519 + NTRU Prime), стойкий к подбору на квантовых компьютерах. В версии OpenSSH 8.9 данный метод согласования добавлен между методами ECDH и DH, но в следующем выпуске его планируют задействовать по умолчанию.
- В ssh-keygen, ssh и ssh-agent улучшена обработка ключей FIDO-токенов, используемых для верификации устройства, включая ключи для биометрической аутентификации.
- В ssh-keygen добавлена команда "ssh-keygen -Y match-principals" для проверки имён пользователей в файле со списком разрешённых имён.
- В ssh-add и ssh-agent предоставлена возможность добавления в ssh-agent FIDO-ключей, защищённых PIN-кодом (запрос PIN выводится в момент аутентификации).
- В ssh-keygen разрешён выбор алгоритма хэширования (sha512 или sha256) во время формирования подписи.
- В ssh и sshd для повышения производительности обеспечено чтение сетевых данных напрямую в буфер входящих пакетов, минуя промежуточную буферизацию в стеке. Аналогично реализовано прямое помещение получаемых данных в канальный буфер.
- В ssh в директиве PubkeyAuthentication расширен список поддерживаемых параметров (yes|no|unbound|host-bound) для предоставления возможности выбора варианта используемого расширения протокола.
Релиз OpenSSH 8.9 с устранением уязвимости в sshd
www.opennet.ru