Qualys выявила уязвимость CVE-2023-6246 в стандартной библиотеке Glibc, позволяющую через манипуляции с запуском SUID-приложений добиться выполнения кода с повышенными привилегиями. Исследователи представили рабочий локальный эксплойт для получения прав root через манипуляцию с аргументами командной строки при запуске утилиты su.
Уязвимость вызвана переполнением буфера в функций __vsyslog_internal(), используемой при вызове функций syslog() и vsyslog(). Баг возникает из-за ошибки при попытке вывода через макрос SYSLOG_HEADER слишком длинного имени приложения. При попытке расширения буфера с учётом длинного имени возникает сбой, а данные записываются в старый буфер изначального меньшего размера.
При организации атаки через утилиту su атакующий может изменить имя процесса при запуске приложения через замену значения argv[0], которое используется для получения информации об имени программы при выводе в лог, и добиться контролируемой перезаписи данных за пределами выделенного буфера.Переполнение можно использовать для перезаписи структуры ss_module в библиотеке nss для создания разделяемой библиотеки и её загрузки с правами root.
Этот баг есть с выпуска glibc 2.37 (августа 2022 года), включающего изменение, обрабатывающее ситуацию с попыткой записи слишком больших сообщений. Патч был бэкпортирован в ветку glibc 2.36 и и пакеты дистрибутивов с более старыми версиями glibc. Наличие уязвимости подтверждено в Debian 12/13, Ubuntu 23.04/23.10 и
Fedora 37-39.
Источник: OpenNET.