Уязвимость в tuned, позволяющая выполнить код с правами root

В развиваемом компанией 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 isnevil33[?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), не подверженные уязвимостям.

Источник: http://www.opennet.ru/opennews/art.shtml?num=62307