W GDM wykryto lukę

Badacz bezpieczeństwa przez GitHub dał mi znać niedawno zidentyfikowałeś lukę w zabezpieczeniach (CVE-2020-16125) w GNOME Display Manager (GDM), który jest odpowiedzialny za wyświetlanie ekranu logowania.

W połączeniu z inną luką w usłudze śledzenia kont (account-daemon), problem pozwala na uruchomienie kodu jako root.  Luka jest związana z nieprawidłowym uruchomieniem narzędzia konfiguracji początkowej, jeśli nie można uzyskać dostępu do usługi demona konta za pośrednictwem DBus.

O podatności

Nieuprzywilejowany użytkownik może zawiesić proces demona kont lub rozłącz się, co stworzy warunki aby narzędzie gnome-initial-setup było uruchamiane z GDM, dzięki czemu nowy użytkownik może zarejestrować się jako członek grupy sudo, to znaczy mieć możliwość uruchamiania programów jako root.

Normalnie GDM wywołuje gnome-initial-setup, aby ustawić pierwszego użytkownika jeśli w systemie nie ma kont. Weryfikacja istnienia kont odbywa się poprzez kontakt z kontem-demonem. Jeśli określony proces się nie powiedzie, GDM zakłada, że ​​brakuje kont i rozpoczyna proces wstępnej konfiguracji.

Badacz zidentyfikował dwa sposoby zakłócania procesu kont demonów- Pierwszy (CVE-2020-16126) jest spowodowany nieprawidłowym resetowaniem uprawnień, a drugi (CVE-2020-16127) błędem podczas przetwarzania pliku „.pam_environment”.

Ponadto, inna luka została znaleziona w kontach demonów (CVE-2018-14036) spowodowane niepoprawnymi sprawdzeniami ścieżek do plików i zezwoleniem na odczyt dowolnej zawartości pliku w systemie.

Luki w account-daemon są spowodowane zmianami wprowadzonymi przez programistów Ubuntu i nie pojawiają się w głównym kodzie demona kont projektu FreeDesktop i pakietu Debian.

Problem CVE-2020-16127 występuje w poprawce dodanej w Ubuntu, która implementuje funkcję is_in_pam_environment, która odczytuje zawartość pliku .pam_environment z katalogu domowego użytkownika. Jeśli umieścisz dowiązanie symboliczne do / dev / zero zamiast tego pliku, proces demona konta zawiesza się przy nieskończonych operacjach odczytu i przestaje odpowiadać na żądania przez DBus.

To niezwykłe, że luka w nowoczesnym systemie operacyjnym jest tak łatwa do wykorzystania. W niektórych przypadkach napisałem tysiące linii kodu, aby wykorzystać lukę w zabezpieczeniach. 

Większość współczesnych exploitów obejmuje skomplikowane sztuczki, takie jak wykorzystanie luki w zabezpieczeniach pamięci do sfałszowania fałszywych obiektów w stercie lub zastąpienie pliku dowiązaniem symbolicznym do mikrosekundowej precyzji w celu wykorzystania luki w zabezpieczeniach TOCTOU. 

Dlatego w dzisiejszych czasach stosunkowo rzadko można znaleźć lukę, która nie wymaga umiejętności kodowania, aby ją wykorzystać. Myślę też, że luka jest łatwa do zrozumienia, nawet jeśli nie masz wcześniejszej wiedzy na temat działania Ubuntu lub doświadczenia w badaniach nad bezpieczeństwem.

Luka CVE-2020-16126 jest spowodowana przez inną poprawkę który resetuje uprawnienia bieżącego użytkownika podczas przetwarzania niektórych wywołań DBus (na przykład org.freedesktop.Accounts.User.SetLanguage).

Proces demona konta działa normalnie jako root, co zapobiega wysyłaniu sygnałów przez zwykłego użytkownika.

Ale dzięki dodanej łatce uprawnienia do procesów można zresetować a użytkownik może zakończyć ten proces, wysyłając sygnał. Aby przeprowadzić atak, wystarczy stworzyć warunki do usunięcia uprawnień (RUID) i wysłać sygnał SIGSEGV lub SIGSTOP do procesu demona konta.

Użytkownik kończy sesję graficzną i przechodzi do konsoli tekstowej (Ctrl-Alt-F1).
Po zakończeniu sesji graficznej GDM próbuje wyświetlić ekran logowania, ale zawiesza się podczas próby uzyskania odpowiedzi od demona kont.

Sygnały SIGSEGV i SIGCONT są wysyłane z konsoli do procesu demona konta, powodując jego zawieszenie.

Możesz również wysyłać sygnały przed wyjściem z sesji graficznej, ale musisz to zrobić z opóźnieniem, aby mieć czas na zakończenie sesji, a przed wysłaniem sygnału GDM miał czas na rozpoczęcie.

Żądanie do demona kont w GDM kończy się niepowodzeniem i GDM wywołuje narzędzie gnome-initial-setup, w którego interfejsie wystarczy utworzyć nowe konto.

Luka została naprawiona w GNOME 3.36.2 i 3.38.2. Wykorzystanie luki zostało potwierdzone w Ubuntu i jego pochodnych.

źródło: https://securitylab.github.com


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.