Dans le processus en arrière-plan développé par Red Hat appelé tuned, qui effectue l'optimisation automatique des réglages matérielles et du noyau en fonction de la charge actuelle, une vulnérabilité a été découverte (CVE-2024-52336), permettant à un utilisateur local non privilégié d'exécuter n'importe quelle commande avec des droits root.
Le problème se trouve dans l'implémentation de la méthode DBus « com.redhat.tuned.instance_create », utilisée pour créer des instances de plugins, où il est possible de transmettre les paramètres « script_pre » et « script_post » pour indiquer les scripts exécutés avant ou après la création de l'instance du plugin. Le problème est que les réglages de Polkit permettent à tout utilisateur local connecté sans authentification d'envoyer une requête DBus à cette méthode, alors que le processus tuned lui-même s'exécute avec des droits root et lance également les scripts indiqués dans les paramètres « script_pre » et « script_post » avec des droits root. Par exemple, pour exécuter le script /path/to/myscript.sh avec des droits root, l'utilisateur n'a qu'à exécuter la commande : 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": "*"}'
La méthode DBus « com.redhat.tuned.instance_create » présente également une vulnérabilité moins critique (CVE-2024-52337), causée par l'absence de nettoyage de la valeur du nom de l'instance du plugin lors de son enregistrement dans le journal. Un attaquant peut ajouter un nom contenant des retours à la ligne et des caractères d'échappement pour l'émulateur de terminal, qui peuvent être utilisés pour perturber la structure du journal et exécuter des actions lors de l'affichage de la sortie de la commande « tuned-adm get_instances » dans le 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": "*"}'
Les vulnérabilités se manifestent à partir de la version tuned 2.23, publiée au début de juin 2024, et ont été corrigées dans la version tuned 2.24.1. Parmi les principales distributions, les problèmes ont été corrigés dans RHEL 9, Fedora 40, Arch Linux et Gentoo. Dans les branches stables d'Ubuntu, Debian et SUSE/openSUSE, les vulnérabilités ne se manifestent pas, car elles incluent d'anciennes versions de tuned (<2.23), qui ne sont pas vulnérables.
Source : opennet.ru
