W rozwijanym przez firmę Red Hat tle procesu tuned, który automatycznie optymalizuje ustawienia sprzętu i jądra w zależności od bieżącego obciążenia, wykryto lukę (CVE-2024-52336), która pozwala lokalnemu użytkownikowi bez przywilejów na wykonanie dowolnych poleceń z uprawnieniami root.
Problem występuje w implementacji metody DBus „com.redhat.tuned.instance_create”, używanej do tworzenia instancji wtyczek, do której można przekazać parametry „script_pre” i „script_post” w celu określenia skryptów wykonywanych przed lub po utworzeniu instancji wtyczki. Problem polega na tym, że ustawienia Polkit pozwalają każdemu zalogowanemu lokalnemu użytkownikowi bez uwierzytelnienia wysłać zapytanie DBus do tej metody, podczas gdy sam proces tuned działa z uprawnieniami root i uruchamia skrypty określone w parametrach „script_pre” i „script_post” również z uprawnieniami root. Na przykład, aby uruchomić skrypt /path/to/myscript.sh z uprawnieniami root, wystarczy, że użytkownik wykona polecenie: 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”: „*”}’
W metodzie DBus „com.redhat.tuned.instance_create” znajduje się również mniej niebezpieczna luka (CVE-2024-52337), spowodowana brakiem czyszczenia wartości z nazwą instancji wtyczki przy jej zapisie w logach. Napastnik może dodać nazwę zawierającą znak nowej linii i znaki ucieczki dla emulatora terminala, które mogą być wykorzystane do naruszenia struktury logu i wykonania działań przy wyświetlaniu wyniku polecenia „tuned-adm get_instances” w terminalu. 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”: „*”}’
Luki pojawiają się od wersji tuned 2.23, wydanej na początku czerwca 2024 roku, i zostały usunięte w wydaniu tuned 2.24.1. W większych dystrybucjach problemy zostały naprawione w RHEL 9, Fedora 40, Arch Linux i Gentoo. W stabilnych gałęziach Ubuntu, Debian i SUSE/openSUSE luki nie występują, ponieważ dostarczane są w nich stare wersje tuned (<2.23), które nie są podatne na te luki.
Źródło: opennet.ru
