Релиз OpenSSH 10.1

Опубликован релиз OpenSSH 10.1, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP.

Основные изменения:

  • Устранена проблема с безопасностью, позволяющая атакующему подставить shell-команды через манипуляции со спецсимволами в имени пользователя или URI, которые могли быть выполнены при запуске команды, указанной через настройку “ProxyCommand” и содержащей подстановку “%u”. Проблема затрагивает только системы, допускающие при запуске ssh подстановку имён пользователей или URI, полученных из незаслуживающих доверия источников.

    Для блокирования подобных атак запрещено использование управляющих символов в именах пользователей, указываемых при запуске в командной строке или подставляемых в настройки через %-последовательности. Также запрещено использование нулевого символа (“”) в URI ssh://. Исключение сделано только для имён, заданных в файле конфигурации (подразумевается, что данные файле конфигурации заслуживают доверия).

  • В утилиты ssh и ssh-agent добавлена поддержка ключей ed25519, хранимых в токенах PKCS#11.
  • В файл конфигурации ssh_config добавлена настройка RefuseConnection, при обработке которой в активной секции осуществляется завершение работы процесса с выводом сообщения об ошибке без попытки установки соединения. Match host foo RefuseConnection “хост foo уже не используется, подключайтесь к хосту bar”
  • В ssh и sshd добавлены обработчики сигнала SIGINFO для вывода в лог информации о сеансе и активном канале.
  • В sshd в случае отклонения аутентификации пользователя по сертификату обеспечен вывод в лог не только причины блокировки входа, но и исчерпывающей информации для идентификации проблемного сертификата.
  • В sshd добавлена проверка номера дисплея X11, относительно смещения, указанного в директиве X11DisplayOffset.
  • В набор unit-тестов добавлены возможности измерения производительности, активируемые при запуске “make UNITTEST_BENCHMARK=yes” в OpenBSD или “make unit-bench” в остальных системах.

Изменения, потенциально нарушающие обратную совместимость:

  • В ssh добавлен вывод предупреждения при использовании при установке соединения алгоритма согласования ключей, не стойкого к подбору на квантовом компьютере. Предупреждение добавлено из-за риска осуществления атак в будущем, используя ранее сохранённые дампы трафика. Для отключения предупреждения в ssh_config добавлена опция WarnWeakCrypto. Match host unsafe.example.com WarnWeakCrypto no
  • В ssh и sshd значительно изменена обработка параметров качества обслуживания DSCP (IPQoS). Для интерактивного трафика теперь по умолчанию выставляется класс EF (Expedited Forwarding) для более приоритетной обработки в беспроводных сетях. Для не интерактивного трафика выставляется класс, по умолчанию используемых в операционной системе. Класс трафика можно изменить при помощи настройки IPQoS в ssh_config и sshd_config. Параметры ToS (type-of-service) для IPv4 в директиве IPQoS объявлены устаревшими (на мену ToS пришёл DSCP).
  • В ssh-add при добавлении сертификата в ssh-agent реализовано выставление времени жизни сертификата в значение, на 5 минут большее, чем срок действия сертификата (для автоматического удаления просроченного сертификата). Для отключения данного поведения в ssh-add добавлена опция “-N”.
  • Удалена поддержка ключей XMSS, которая была помечена как экспериментальная и никогда по умолчанию не включалась.
  • Unix-сокеты, создаваемые процессами ssh-agent и sshd, перенесены из каталога /tmp в ~/.ssh/agent, что гарантирует невозможность обращения через данные сокеты из изолированных процессов, для которых ограничен доступ к файловой системе, но открыт доступ к /tmp.

В будущих выпусках будут объявлены устаревшими DNS-записи
SHA1 SSHFP из-за проблем с надёжность хэш-функции SHA1. Данные записи будут игнорироваться, а команда “ssh-keygen -r” будет генерировать только записи SHA256 SSHFP.

Release. Ссылка here.