По своей сути уязвимость аналогична прошлой проблеме и также вызвана состоянием гонки в обработчике прерывания SIGALRM, возникающем из-за выполнения функций, не рассчитанных на вызов в асинхронном режиме из обработчиков сигналов. Обработчик срабатывает при наступлении таймаута, определённого через параметр LoginGraceTime, и прерывает текущее выполнение кода. Использование в обработчике прерываний не рассчитанных на асинхронное выполнение функций, в которых применяется динамическое выделение памяти, таких как syslog(), может привести к повреждению внутренних структур malloc при срабатывании SIGALRM во время выполнения определённого кода.
Новая уязвимость отличается тем, что состояние гонки возникает из-за вызова в обработчике сигнала grace_alarm_handler() функции cleanup_exit(). В основной кодовой базе OpenSSH данная функция может использоваться в асинхронно выполняемом коде, но в пакетах к RHEL 9 и Fedora был применён дополнительный патч, добавляющий в cleanup_exit() вызов функции для генерации событий аудита, на рассчитанной на использование в обработчиках сигналов.
Данный патч использовался в RHEL 9 и производных дистрибутивах в пакетах, основанных на OpenSSH 8.7p1. В актуальных выпусках Fedora проблема не проявляется, так как начиная с Fedora 38 дистрибутив перешёл на более новую версию OpenSSH без изменения cleanup_exit(). В отличие от прошлой уязвимости, для блокирования новой проблемы не подходит обходной способ защиты, основанный на использовании в sshd опции «-e», отключающей вывод лога через syslog. Но при этом для блокирования уязвимости в sshd_config можно выставить параметр «LoginGraceTime=0».
Источник: http://www.opennet.ru/opennews/art.shtml?num=61509