В развиваемом компанией Red Hat фоновом процессе tuned, выполняющем автоматическую оптимизацию настроек оборудования и ядра в зависимости от текущей нагрузки, выявлена уязвимость (CVE-2024-52336), позволяющая локальному непривилегированному пользователю выполнить любые команды с правами root.
Проблема присутствует в реализации DBus-метода «com.redhat.tuned.instance_create», применяемого для создания экземпляров плагинов, в который можно передать параметры «script_pre» и «script_post» для указания скриптов, выполняемых перед или после создания экземпляра плагина. Проблема в том, что настройки Polkit позволяют любому вошедшему в систему локальному пользователю без аутентификации отправить DBus-запрос к данному методу, в то время как сам процесс tuned выполняется с правами root и запускает отмеченные в параметрах «script_pre» и «script_post» скрипты тоже с правами root. Например, для запуска скрипта /path/to/myscript.sh с правами root пользователю достаточно выполнить команду: gdbus call -y -d com.redhat.tuned -o /Tuned \ -m com.redhat.tuned.control.instance_create cpu myinstance \ ‘{«script_pre»: «/path/to/myscript.sh», «devices»: «*»}’
В DBus-методе «com.redhat.tuned.instance_create» также присутствует менее опасная уязвимость (CVE-2024-52337), вызванная отсутствием чистки значения с именем экземпляра плагина при его выводе в лог. Атакующий может добавить имя, содержащее перевод строки и escape-символы для эмулятора терминала, которые могут использоваться для нарушения структуры лога и выполнения действий при отображении вывода команды «tuned-adm get_instances» в терминале. EVIL=`echo -e «this is\nevil\033[?1047h»` gdbus call -y -d com.redhat.tuned -o /Tuned -m com.redhat.tuned.control.instance_create cpu «$EVIL» ‘{«devices»: «*»}’
Уязвимости проявляются начиная с версии tuned 2.23, сформированной в начале июня 2024 года, и устранены в выпуске tuned 2.24.1. Из крупных дистрибутивов проблемы исправлены в RHEL 9, Fedora 40, Arch Linux и Gentoo. В стабильных ветках Ubuntu, Debian и SUSE/openSUSE уязвимости не проявляются, так как в них поставляются старые версии tuned (<2.23), не подверженные уязвимостям.
Источник: opennet.ru
