Издание на OpenSSH 9.2 с отстраняване на уязвимост, проявяваща се на етапа преди аутентификация

Обявен е релиз 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».

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster