Недавно стало известно информация об уязвимости, затрагивающей стандартную библиотеку C Glibc, исследователями Qualys была обнаружена угроза, зарегистрированная под номером «CVE-2023-6246» и получившая оценку 8.4 по шкале CVSS.
Уязвимость CVE-2023-6246 позволяет манипулировать запуском приложения SUID для выполнения привилегированного кода. и возникает из-за переполнения буфера в функциях vsyslog_internal(), используемых при вызове функций syslog() и vsyslog().
О CVE-2023-6246
Эта проблемаe возникает из-за ошибки при попытке создать слишком длинное имя приложения через макрос SYSLOG_HEADER. При попытке расширить буфер на основе длинного имени происходит переполнение, в результате чего данные записываются в исходный буфер меньшего размера.
Уязвимости, обнаруженные в функциях системного журнала и qsort glibc, подчеркивают критический аспект безопасности программного обеспечения: даже самые фундаментальные и надежные компоненты не застрахованы от сбоев. Последствия этих уязвимостей выходят далеко за рамки отдельных систем, затрагивая множество приложений и потенциально миллионы пользователей по всему миру. Целью данной статьи является пролить свет на специфику этих уязвимостей, их потенциальное воздействие и меры, принимаемые для их смягчения.
При организации атаки через утилиту SU, Злоумышленник может изменить имя процесса при запуске приложения, заменив значение argv[0]., который используется для получения информации об имени программы при отправке в регистр и достижения контроля над записью данных из выделенного буфера. Затем переполнение можно использовать для перезаписи структуры nss_module в библиотеке nss, чтобы создать общую библиотеку и загрузить ее с правами root.
Проблема присутствует с момента выпуска glibc 2.37, выпущенный в августе 2022 года, который включал изменение, позволяющее справиться с ситуацией, возникающей при попытке написать слишком большие сообщения. Исправление было обновлено до glibc 2.36 и дистрибутивов с более ранними версиями glibc, поскольку оно устраняло эту уязвимость, одновременно устраняя другую, менее серьезную уязвимость. Оказалось, что исправление неопасной уязвимости привело к появлению критической проблемы. Примечательно, что подобная уязвимость была обнаружена в 1997 году в функции vsyslog() библиотеки libc 5.4.3.
Обнаружение уязвимостей в функциях системного журнала и qsort библиотеки GNU C вызывает серьезные проблемы с безопасностью.
Исследователи Qualys, обнаружившие уязвимость, протестировали несколько популярных систем установки на базе Linux и подтвердили, что некоторые из них уязвимы, включая Debian 12/13, Ubuntu 23.04/23.10 и Fedora 37-39.
к продемонстрировать уязвимость, исследователи разработали работающий эксплойт который позволяет получить root-права, манипулируя аргументами командной строки при запуске утилиты SU. Эксплойт продемонстрировал возможность получения root-прав непривилегированным пользователем и был выполнен в полностью обновленной среде Fedora 38 со всеми механизмами защиты, включенными в конфигурации по умолчанию. Уязвимость может быть использована только локально, поскольку она требует передачи более 1024 байтов через параметр argv[0] или аргумент ident в функцию openlog().
Со стороны исправление уязвимости, упоминается, что оно уже включено в кодовую базу Glibc и станет частью обновления Glibc 2.39 вместе с исправлениями еще двух уязвимостей (CVE-2023-6779, CVE-2023-6780), которые также влияют на код __vsyslog_internal() и вызывают переполнение буфера.
Кроме того, Qualys предупредил о выявлении переполнения буфера в реализации функции qsort(), которая не была классифицирована разработчиками Glibc как уязвимость, поскольку эксплуатация предполагает использование в качестве аргумента нетипичной функции сравнения при вызове qsort. , который возвращает разницу сравниваемых параметров.
Наконец, если вы хотите узнать об этом больше, вы можете проверить статус уязвимости на следующих страницах: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo y Slackware
источник: https://blog.qualys.com