Num processo em segundo plano desenvolvido pela Red Hat, o tuned, que realiza a otimização automática das configurações de hardware e do kernel de acordo com a carga atual, foi encontrada uma vulnerabilidade (CVE-2024-52336) que permite a um usuário local não privilegiado executar qualquer comando com privilégios de root.
O problema está na implementação do método DBus "com.redhat.tuned.instance_create", utilizado para criar instâncias de plugins, onde é possível passar os parâmetros "script_pre" e "script_post" para indicar os scripts que devem ser executados antes ou depois da criação da instância do plugin. O problema é que as configurações do Polkit permitem que qualquer usuário local autenticado envie uma solicitação DBus para este método, enquanto o próprio processo tuned é executado com privilégios de root e executa os scripts especificados nos parâmetros "script_pre" e "script_post" também com privilégios de root. Por exemplo, para executar o script /path/to/myscript.sh com privilégios de root, o usuário só precisa executar o comando: 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": "*"}'
O método DBus "com.redhat.tuned.instance_create" também possui uma vulnerabilidade menos crítica (CVE-2024-52337), causada pela falta de limpeza do valor com o nome da instância do plugin ao ser registrado no log. Um atacante pode adicionar um nome que contenha uma quebra de linha e caracteres de escape para emuladores de terminal, os quais podem ser usados para corromper a estrutura do log e executar ações ao exibir a saída do comando "tuned-adm get_instances" no terminal. 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": "*"}'
As vulnerabilidades se manifestam a partir da versão tuned 2.23, lançada no início de junho de 2024, e foram corrigidas na versão tuned 2.24.1. Nos principais distribuições, o problema foi consertado no RHEL 9, Fedora 40, Arch Linux e Gentoo. Nas versões estáveis do Ubuntu, Debian e SUSE/openSUSE, as vulnerabilidades não se manifestam, pois são fornecidas versões antigas do tuned (<2.23), que não são suscetíveis a essas falhas.
Fonte: opennet.ru
