OpenSSH 9.2 release
Опубликован релиз OpenSSH 9.2, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP. В новой версии устранена уязвимость, приводящая к двойному освобождению области памяти на стадии до прохождения аутентификации. Уязвимости подвержен только выпуск OpenSSH 9.1, в более ранних версиях проблема не проявляется.

Для создания условий проявления уязвимости достаточно изменить баннер SSH-клиента на "SSH-2.0-FuTTYSH_9.1p1" для того, чтобы добиться выставления флагов "SSH_BUG_CURVE25519PAD" и "SSH_OLD_DHGEX", зависящих от версии SSH-клиента. После выставления данных флагов память под буфер "options.kex_algorithms" освобождается два раза - при выполнении функции do_ssh2_kex(), вызывающей compat_kex_proposal(), и при выполнении функции do_authentication2(), вызывающей по цепочке input_userauth_request(), mm_getpwnamallow(), copy_set_server_options(), assemble_algorithms() и kex_assemble_names().

Создание рабочего эксплоита для уязвимости считается маловероятным, так как процесс эксплуатации слишком усложнён - современные библиотеки распределения памяти предоставляют защиту от двойного освобождения памяти, а процесс pre-auth, в котором присутствует ошибка, выполняется с пониженными привилегиями в изолированном sandbox-окружении.
Кроме отмеченной уязвимости в новом выпуске также устранены ещё две проблемы с безопасностью:
  • Ошибка при обработке настройки "PermitRemoteOpen", приводящая к игнорированию первого аргумента, если он отличается от значений "any" и "none". Проблема проявляется в версиях новее OpenSSH 8.7 и приводит к пропуску проверки при указании только одного полномочия.
  • Атакующий, контролирующий DNS-сервер, используемый для определения имён, может добиться подстановки спецсимволов (например, "*") в файлы known_hosts, если в конфигурации включены опции CanonicalizeHostname и CanonicalizePermittedCNAMEs, и системный резолвер не проверяет корректность ответов от DNS-сервера. Проведение атаки рассматривается как маловероятное, так как возвращаемые имена должны соответствовать условиям, заданным через CanonicalizePermittedCNAMEs.
Другие изменения:
  • В ssh_config для ssh добавлена настройка EnableEscapeCommandline, управляющая включением обработки на стороне клиента escape-последовательности "~C", предоставляющей командную строку. По умолчанию обработка "~C" теперь отключена для использования более жёсткой sandbox-изоляции, что потенциально может привести к нарушению работы систем, в которых "~C" используется для перенаправления портов во время работы.
  • В sshd_config для sshd добавлена директива ChannelTimeout для задания таймаута неактивности канала (каналы, в которых за указанное в директиве время не зафиксирован трафик, будут автоматически закрыты). Для сеанса, X11, агента и перенаправления трафика могут быть заданы разные таймауты.
  • В sshd_config для sshd добавлена директива UnusedConnectionTimeout, позволяющая задать таймаут для завершения клиентских соединений, находящихся определённое время без активных каналов.
  • В sshd добавлена опция "-V" для вывода версии по аналогии с подобной опцией в клиенте ssh.
  • В вывод "ssh -G" добавлена строка "Host", отражающая значение аргумента с именем хоста.
  • В scp и sftp добавлена опция "-X" для управления такими параметрами протокола SFTP, как размер буфера копирования и число ожидающих завершения запросов.
  • В ssh-keyscan разрешено сканирование полных CIDR-диапазонов адресов, например, "ssh-keyscan 192.168.0.0/24".
Similar content:
show more less
You should to log in

loading