Специалисты в области информационной безопасности обнаружили новую уязвимость в пакетах OpenSSH, входящих в состав операционной системы Red Hat Enterprise Linux 9 (RHEL 9). Эта проблема получила идентификатор CVE-2024-6409 и отличается от предыдущей уязвимости regreSSHion. Она позволяет злоумышленникам выполнять код на удаленном сервере без прохождения аутентификации. Уязвимость также затрагивает пакеты для Fedora Linux 36 и 37.
Уязвимость связана с состоянием гонки (Race Condition) в обработчике прерывания SIGALRM, которое возникает из-за выполнения функций, не рассчитанных на асинхронное выполнение из обработчиков сигналов. Обработчик срабатывает при наступлении таймаута, определенного параметром LoginGraceTime, что приводит к прерыванию текущего выполнения кода. Вызов функций, таких как syslog(), которые применяют динамическое выделение памяти, может повредить внутренние структуры malloc при срабатывании SIGALRM.
CVE-2024-6409 тесно связана с вызовом функции cleanup_exit() в обработчике сигнала grace_alarm_handler(). В основной кодовой базе OpenSSH этот вызов не приводит к проблемам, но в пакетах для RHEL 9 и Fedora был добавлен патч, который добавляет в cleanup_exit() вызов функции для генерации событий аудита. Однако оказалось, что эта функция не рассчитана на использование в обработчиках сигналов.
Патч, который привел к уязвимости, использовался в RHEL 9 и производных дистрибутивах на базе OpenSSH 8.7p1. В последних версиях Fedora проблема не проявляется, так как начиная с Fedora 38 используется более новая версия OpenSSH, в которой функция cleanup_exit() осталась без изменений.
Для устранения уязвимости в конфигурации sshd (sshd_config) рекомендуется установить параметр LoginGraceTime в 0. Этот метод блокирует уязвимость, несмотря на то, что стандартные способы защиты, такие как использование опции «-e» для отключения вывода логов через syslog, неэффективны.
Этот случай подчеркивает важность тщательного тестирования любых модификаций, особенно в критически важных компонентах операционных систем. Поддержание баланса между специфическими требованиями и общей безопасностью остается сложной, но необходимой задачей в мире информационных технологий.
Уязвимость связана с состоянием гонки (Race Condition) в обработчике прерывания SIGALRM, которое возникает из-за выполнения функций, не рассчитанных на асинхронное выполнение из обработчиков сигналов. Обработчик срабатывает при наступлении таймаута, определенного параметром LoginGraceTime, что приводит к прерыванию текущего выполнения кода. Вызов функций, таких как syslog(), которые применяют динамическое выделение памяти, может повредить внутренние структуры malloc при срабатывании SIGALRM.
CVE-2024-6409 тесно связана с вызовом функции cleanup_exit() в обработчике сигнала grace_alarm_handler(). В основной кодовой базе OpenSSH этот вызов не приводит к проблемам, но в пакетах для RHEL 9 и Fedora был добавлен патч, который добавляет в cleanup_exit() вызов функции для генерации событий аудита. Однако оказалось, что эта функция не рассчитана на использование в обработчиках сигналов.
Патч, который привел к уязвимости, использовался в RHEL 9 и производных дистрибутивах на базе OpenSSH 8.7p1. В последних версиях Fedora проблема не проявляется, так как начиная с Fedora 38 используется более новая версия OpenSSH, в которой функция cleanup_exit() осталась без изменений.
Для устранения уязвимости в конфигурации sshd (sshd_config) рекомендуется установить параметр LoginGraceTime в 0. Этот метод блокирует уязвимость, несмотря на то, что стандартные способы защиты, такие как использование опции «-e» для отключения вывода логов через syslog, неэффективны.
Этот случай подчеркивает важность тщательного тестирования любых модификаций, особенно в критически важных компонентах операционных систем. Поддержание баланса между специфическими требованиями и общей безопасностью остается сложной, но необходимой задачей в мире информационных технологий.