Im von der Firma Red Hat entwickelten Hintergrundprozess tuned, der eine automatische Optimierung der Hardware- und Kernel-Einstellungen basierend auf der aktuellen Last durchführt, wurde eine Schwachstelle (CVE-2024-52336) erkannt, die es einem lokalen unprivilegierten Benutzer ermöglicht, beliebige Befehle mit Root-Rechten auszuführen.
Das Problem ist in der Implementierung der DBus-Methode "com.redhat.tuned.instance_create" vorhanden, die zum Erstellen von Plugin-Instanzen verwendet wird. Hierbei können die Parameter "script_pre" und "script_post" übergeben werden, um Skripte anzugeben, die vor oder nach der Erstellung der Plugin-Instanz ausgeführt werden. Das Problem besteht darin, dass die Polkit-Einstellungen es jedem eingeloggten lokalen Benutzer ohne Authentifizierung ermöglichen, eine DBus-Anfrage an diese Methode zu senden, während der Prozess tuned selbst mit Root-Rechten läuft und auch die in den Parametern "script_pre" und "script_post" angegebenen Skripte mit Root-Rechten ausführt. Zum Beispiel muss ein Benutzer nur den folgenden Befehl ausführen, um das Skript /path/to/myscript.sh mit Root-Rechten zu starten: 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": "*"}'
In der DBus-Methode "com.redhat.tuned.instance_create" gibt es auch eine weniger gefährliche Schwachstelle (CVE-2024-52337), die durch das Fehlen einer Bereinigung des Wertes für den Namen der Plugin-Instanz beim Ausgeben in das Protokoll verursacht wird. Ein Angreifer kann einen Namen hinzufügen, der Zeilenumbrüche und Escape-Zeichen für den Terminalemulator enthält, die dazu verwendet werden können, die Protokollstruktur zu stören und Aktionen bei der Anzeige der Ausgabe des Befehls "tuned-adm get_instances" im Terminal auszuführen. 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": "*"}'
Die Schwachstellen sind ab der Version tuned 2.23 sichtbar, die Anfang Juni 2024 veröffentlicht wurde, und wurden in der Version tuned 2.24.1 behoben. Von den großen Distributionen wurden die Probleme in RHEL 9, Fedora 40, Arch Linux und Gentoo behoben. In den stabilen Zweigen von Ubuntu, Debian und SUSE/openSUSE sind die Schwachstellen nicht vorhanden, da sie ältere Versionen von tuned (<2.23) verwenden, die nicht anfällig für Schwachstellen sind.
Quelle: opennet.ru
