Выпуск OpenSSH 10.6 с устранением уязвимостей

Опубликован выпуск OpenSSH 10.6, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP. Устранены проблемы с безопасностью, большинство из которых выявлены при анализе кода с использованием AI-инструментов (CVE-идентификаторы не назначены):

  • Уязвимость в sftp, позволяющая записать файл за пределы целевой директории при обращении к подконтрольному злоумышленникам серверу.
  • Две уязвимости в реализации GSSAPI в sshd, вызванные сохранением состояния между разными попытками аутентификации. Учётные данные GSSAPI могли сохраняться после неудачной попытки аутентификации и использоваться после последующей успешной попытки аутентификации.
    Проблемы проявляются при включении настройки GSSAPIAuthentication.

  • В sshd и ssh отключена поддержка сжатия LZ77 из-за возможности проведения атаки по сторонним каналам, позволяющей восстановить содержимое из другого сеанса при подключении через общее с жертвой мультиплексированное соединение, пользуясь тем, что контролируемые злоумышленником входные данные влияют на общую длину передаваемых зашифрованных сообщений (LZ77 заменяет повторяющиеся строки на ссылки в общем для всех каналов буфере).
  • В утилите ssh запрещено использовать символы ‘$’ и » в именах пользователей, введённых в командной строке, так с их помощью можно было организовать выполнение кода при подстановке имён в директивы ProxyCommand и Match exec, указанные в настройках.
  • В ssh-keygen исправлена некорректная обработка летнего времени, приводившая к сдвигу срока действия сертификатов на 1 час.
  • С цельб блокирования создания zip-бомб в sshd и ssh добавлена проверка превышения максимального размера пакета при распаковке данных.
  • В sshd решена проблема, позволявшая обойти ограничения ключевого слова «restrict» в файле authorized_keys, которое не применялось к туннелям (PermitTunnel).
  • В sshd устранён некорректный разбор опции «none» внутри блоков Match, которая в некоторых директивах, таких как AuthorizedPrincipalsFile, интерпретировалась как имя файла, а не как признак отключения директивы.
  • В sshd устранено отсутствие сброса root-привилегий на платформах, не поддерживающих передачу файловых дескрипторов и требующих для выделения PTY прав root. Проблема проявляется в QNX 6, SCO OpenServer 5 и при сборке с опцией «—disable-fd-passing».

Не связанные с уязвимостями изменения:

  • Включена поддержка гибридного криптоалгоритма ssh-mldsa44-ed25519, стойкого для подбора на квантовых компьютерах.
  • В sshd_config реализована и включена по умолчанию опция WarnWeakCrypto для управления выводом предупреждений об установке соединения с использованием алгоритмов согласования ключей, не стойких к подбору на квантовом компьютере.
  • В ssh-keygen и ssh-add реализована проверка политики credProtect в учётных данных для выполнения требований верификации (PIN или биометрия) перед доступом к резидентным ключам на токенах FIDO.
  • В ssh-add добавлен флаг «-P» для пропуска необязательного ввода PIN-кода для токенов FIDO и PKCS#11.
  • В ssh в команде ~I реализован вывод информации о версиях на локальной и удалённой системах.
  • В sftp в команды mkdir/lmkdir добавлен флаг ‘-p’ для создания каталогов при необходимости.
  • В ssh-keygen добавлен режим «hexdump» для экспорта ключей в форме шестнадцатеричных дампов (например, для вставки в документацию).
  • В ssh и sshd в директиве ChannelTimeout разрешено указание таймаутов с точностью до долей секунды.
  • В sshd добавлена опция AgentSocketPath для указания пути к $SSH_AUTH_SOCK при пробросе агента (например, user:.ssh/agent для подкаталогов в $HOME и shared:/tmp для общих каталогов).
  • В ssh-agent добавлен флаг «-A» для указания каталогов с сокетами агента, в котором допустимо указание префиксов «user:» и «shared:» как в опции AgentSocketPath.
  • В sshd проверка открытых ключей отделена от попыток аутентификации. Добавлена опция «PubkeyOptions max-pk-ok:nnnn» для настройки числа попыток проверки открытых ключей (по умолчанию 6), после которых соединение будет разорвано по лимиту MaxAuthTries.
  • В ssh и sshd в опцию TCPKeepAlive добавлена поддержка значения «all», включающего отправку keepalive-пакетов не только для основного соединения, но и для проброшенных через него соединений.

Источник: http://www.opennet.ru/opennews/art.shtml?num=66410