Разработчики OpenSSH выпустили версию OpenSSH 9.2 для устранения ряда недостатков, включая уязвимость, которая проявляется на этапе аутентификации на сервере OpenSSH (sshd).
Уязвимость предварительной аутентификации (двойного освобождения) в OpenSSH 9.1 CVE-2023-25136возникает в непривилегированном процессе предварительной аутентификации, который подвергается операции “chroot” и дополнительно изолирован на большинстве основных платформ.
Chroot – операция изменения корневого каталога в Unix-подобных ОС. Программа, запущенная с изменённым корневым каталогом, будет иметь доступ только к файлам, содержащимся в данном каталоге.
OpenSSH – это реализация протокола безопасной оболочки (SSH) с открытым исходным кодом, которая предлагает набор услуг для зашифрованной связи по незащищенной сети в архитектуре клиент-сервер.
Недостатки двойного освобождения возникают, когда уязвимый фрагмент кода вызывает функцию ” free() “, которая используется для освобождения блоков памяти дважды, что приводит к повреждению памяти и к дальнейшему сбою или выполнению произвольного кода.
Исследователь безопасности из Qualys Саид Аббаси сказал, что воздействие происходит в блоке памяти, освобождаемом дважды – ‘options.kex_algorithms’. Он также добавил, что проблема приводит к “двойному освобождению в непривилегированном процессе sshd”.
Абасси пояснил, что активная эксплуатация уязвимости маловероятна, поскольку процесс использования слишком усложнён – современные библиотеки распределения памяти предоставляют защиту от двойного освобождения памяти, а процесс “pre-auth”, в котором присутствует ошибка, выполняется с пониженными привилегиями в изолированной песочнице.