В американской компании Qualys, специализирующейся на облачных решениях для кибербезопасности, обнаружили серьезную уязвимость, связанную с удаленным выполнением кода с правами root на серверах OpenSSH. Она позволяет злоумышленникам получить без аутентификации доступ на этих серверах к корневой оболочке и захватить их. Новую уязвимость CVE-2024-6387 назвали regreSSHion, поскольку она проявилась в резуллтате регрессионного изменения, связанного с уязвимостью CVE-2006-5051, устраненной еще в 2006 году.
OpenSSH — наиболее популярная реализация протокола SSH, которая применяется для безопасных коммуникаций и удаленного доступа в операционных системах Linux и BSD. Она развернута на огромном числе компьютеров, как во внутренних сетях многих организаций, так и в Интернете. Исследователи Qualys с помощью таких поисковых систем, как Shodan и Censys, выявили более 14 млн потенциально уязвимых экземпляров OpenSSH, которые доступны в Интернете. К уязвимым относятся версии, начиная с OpenSSH 8.5, на системах со стандартной библиотекой Glibc.
Уязвимость связана с обработчиком сигналов OpenSSH: при попытке подключения, не прошедшего аутентификацию в течение ограниченного таймаутом времени, обработчик SIGALRM запускается в асинхронном режиме и вызывает различные чувствительные для системы функции.
Это дает возможность злоумышленнику, не предоставившему учетные данные, открыть несколько соединений, асинхронно запустить обработчик сигналов OpenSSH, который вызывает такие функции, не безопасные в асинхронном режиме, как syslog(), что может привести к проблемам в работе памяти, используемой для динамического хранения данных во время выполнения программ.
В 2006 году такую ситуацию назвали состоянием гонки, способной вызвать сбои из-за отказа в обслуживании при выполнении произвольного кода. Однако чтобы преуспеть в такой гонке, злоумышленнику для достижения результата требуется слишком много попыток.
Исследователи Qualys доказали, что это возможно даже несмотря на появление после 2006 года в Linux и других операционных системах таких технологий защиты памяти, как рандомизация адресного пространства ASLR, затрудняющих вредоносные действия программ-экспло́йтов.
В Qualys продемонстрировали возможности такого эксплойта на 32-разрядной системе Linux с библиотекой Glibc и защитой ASLR. На успешную атаку в лаборатории потребовалось до 8 часов. Поражение 64-разрядных систем, как ожидают, займет намного больше времени. Атака на OpenSSH 9.2p1 в стабильной версии Debian Linux i386 состояла почти из 10 тыс. попыток, и продолжалась до 4 часов при сотне одновременных подключений.
Уязвимость OpenSSH regreSSHion устранена в опубликованном 1 июля релизе OpenSSH 9.8. Для противодействия ей можно также блокировать при помощи межсетевых экранов и инструментов сетевого мониторинга многочисленные соединения, необходимые для режима гонки. Учитывая сложность применения OpenSSH regreSSHion, эта уязвимость оценивается по шкале стандарта определения уровня опасности обнаруженной уязвимости CVSS, как важная, а не как критическая.