W menedżerze skrótów Waylanda znaleziono kilka luk

Kilka dni temu pojawiła się wiadomość, że znaleziono szereg luk w swhkd (Simple Wayland HotKey Daemon) spowodowane nieprawidłową obsługą plików tymczasowych, opcji wiersza poleceń i gniazd unixowych.

Program jest napisany w języku Rust i obsługuje skróty klawiszowe w środowiskach opartych na protokole Wayland (zgodnym z plikiem konfiguracyjnym analogiem procesu sxhkd używanego w środowiskach opartych na X11). Pakiet zawiera nieuprzywilejowany proces swhks, który wykonuje akcje dla skrótów klawiszowych oraz proces w tle swhkd, który działa jako root i współdziała z urządzeniami wejściowymi na poziomie interfejsu API uinput. Aby zorganizować interakcję między swhks i swhkd, używane jest gniazdo uniksowe.

Reguły Polkita pozwalają każdemu lokalnemu użytkownikowi uruchomić proces /usr/bin/swhkd jako root i przekazać mu dowolne parametry.

Integracja pakietu RPM zgłoszony do openSUSE Tumbleweed zawierał nietypowe zasady Polkit w plik definicji, który wymagał sprawdzenia przez zespół ds. bezpieczeństwa firmy SUSE.

W wyniku przeglądu zidentyfikowano wiele problemów z bezpieczeństwem. Poszczególne zagadnienia zostały opisane w szczegółowym raporcie poniżej.

Z zidentyfikowane luki, wymienione są:

CVE-2022-27815

Ta luka pozwala na zapisanie PID procesu w pliku o przewidywalnej nazwie oraz w katalogu z możliwością zapisu dla innych użytkowników (/tmp/swhkd.pid), dzięki czemu każdy użytkownik może utworzyć plik /tmp/swhkd.pid i umieścić w nim pid istniejącego procesu, co uniemożliwi uruchomienie swhkd.

W przypadku braku zabezpieczenia przed tworzeniem dowiązań symbolicznych w /tmp, luka może zostać wykorzystana do tworzenia lub nadpisywania plików w dowolnym katalogu w systemie (PID jest zapisywany w pliku) lub określić zawartość dowolnego pliku w systemie (swhkd wyprowadza całą zawartość pliku PID na standardowe wyjście). Należy zauważyć, że w wydanej poprawce plik PID nie został przeniesiony do katalogu /run, ale do katalogu /etc (/etc/swhkd/runtime/swhkd_{uid}.pid), gdzie również nie należy .

CVE-2022-27814

Ta luka pozwala manipulować opcją wiersza poleceń "-c" w celu określenia pliku konfiguracyjnego może określić istnienie dowolnego pliku w systemie.

Podobnie jak w przypadku pierwszej luki, naprawienie problemu jest zastanawiające: naprawienie problemu sprowadza się do tego, że zewnętrzne narzędzie „cat” ('Command::new("/bin/cat").arg(path) jest teraz uruchomiony, aby odczytać plik konfiguracyjny.output()').

CVE-2022-27819

Ten problem wiąże się to również z użyciem opcji "-c", który ładuje i analizuje cały plik konfiguracyjny bez sprawdzania rozmiaru i typu pliku.

Na przykład, aby spowodować odmowę usługi z powodu braku wolnej pamięci i tworzenia zabłąkanych operacji we/wy, możesz określić urządzenie blokowe podczas uruchamiania ("pkexec /usr/bin/swhkd -d -c /dev/sda ») lub urządzenie znakowe, które emituje nieskończony strumień danych.

Problem został rozwiązany przez zresetowanie uprawnień przed otwarciem pliku, ale rozwiązanie nie zostało ukończone, ponieważ resetowany jest tylko identyfikator użytkownika (UID), ale identyfikator grupy (GID) pozostaje taki sam.

CVE-2022-27818

Ta luka pozwala na użycie pliku /tmp/swhkd.sock do utworzenia gniazda uniksowego, który jest tworzony w publicznym katalogu z możliwością zapisu, powodując podobne problemy jak pierwsza luka (każdy użytkownik może utworzyć /tmp/swhkd.sock i generować lub przechwytywać zdarzenia naciśnięć klawiszy).

CVE-2022-27817

W tej luce zdarzenia wejściowe są odbierane ze wszystkich urządzeń i we wszystkich sesjach, co oznacza, że ​​użytkownik w innej sesji Wayland lub konsoli może przechwytywać zdarzenia, gdy inni użytkownicy naciskają klawisze skrótu.

CVE-2022-27816

Proces swhks, podobnie jak swhkd, używa pliku PID /tmp/swhks.pid w katalogu /tmp, który można zapisać publicznie. Problem jest podobny do pierwszej luki, ale nie tak niebezpieczny, ponieważ swhks działa pod nieuprzywilejowanym użytkownikiem.

Wreszcie, jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się z szczegóły w poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.