Znaleźli lukę VFS w systemie Linux, która umożliwia eskalację uprawnień

Kilka dni temu pojawiła się wiadomość, że zidentyfikowano lukę (już skatalogowany pod CVE-2022-0185) in kontekstowe API systemu plików dostarczone przez jądro Linuksa co może pozwolić użytkownikowi lokalnemu na uzyskanie uprawnień administratora w systemie.

Wspomina się, że problem polega na tym, że nieuprzywilejowany użytkownik może uzyskać takie uprawnienia w izolowanym kontenerze czy obsługa przestrzeni nazw użytkowników jest włączona w systemie.

Na przykład przestrzenie nazw użytkowników są domyślnie włączone w Ubuntu i Fedorze, ale nie są włączone w Debianie i RHEL (chyba że są używane platformy izolacji kontenerów). Oprócz eskalacji uprawnień luka może również zostać wykorzystana do wydostania się z izolowanego kontenera, jeśli kontener ma uprawnienie CAP_SYS_ADMIN.

Słaby punkt istnieje w funkcji legacy_parse_param() w VFS i wynika to z braku właściwej walidacji maksymalnego rozmiaru dostarczanych parametrów w systemach plików, które nie obsługują kontekstowego API systemu plików.

Ostatnio kilku znajomych z mojego zespołu CTF Crusaders of Rust i ja napotkaliśmy przepełnienie sterty jądra Linuksa zerowego dnia. Znaleźliśmy błąd poprzez fuzzing z syzkallerem i szybko przekształciliśmy go w exploita Ubuntu LPE. Następnie przepisaliśmy go od nowa, aby uciec i zrootować zahartowaną infrastrukturę Kubernetes CTF firmy Google. Ten błąd dotyczy wszystkich wersji jądra od 0 (obecnie 5.1 jest w toku) i został przypisany CVE-5.16-2022. Zgłosiliśmy to już na liście dystrybucyjnej Linuksa i na liście dyskusyjnej dotyczącej bezpieczeństwa, a błąd został naprawiony wraz z wydaniem tego artykułu.

Przekazanie zbyt dużego parametru może spowodować przepełnienie zmiennej całkowitej używanej do obliczania rozmiaru zapisywanych danych; kod ma sprawdzanie przepełnienia bufora "if (len > PAGE_SIZE - 2 - rozmiar)", które nie działa, jeśli wartość rozmiaru jest większa niż 4094 z powodu przepełnienia liczby całkowitej przez dolną granicę (przepełnienie liczby całkowitej, przy konwersji 4096 – 2 – 4095 do unsigned int, otrzymuje 2147483648).

Ten błąd umożliwia dostęp do specjalnie spreparowanego obrazu FS, spowodować przepełnienie bufora i nadpisać dane jądra za przydzielonym obszarem pamięci. Do wykorzystania luki wymagane są uprawnienia CAP_SYS_ADMIN, czyli uprawnienia administratora.

Od 2022 r. nasi koledzy z zespołu postanowili znaleźć dzień 0 w 2022 r. Nie byliśmy do końca pewni, jak zacząć, ale ponieważ nasz zespół dobrze znał luki w jądrze Linuksa, postanowiliśmy po prostu kupić kilka serwerów dedykowanych. i uruchom syzkaller fuzzer firmy Google. 6 stycznia o 22:30 czasu PST chop0 otrzymał następujący raport o awarii KASAN w legacy_parse_param: slab-out-of-bounds Napisz w legacy_parse_param. Wygląda na to, że syzbot znalazł ten problem dopiero 6 dni wcześniej podczas fuzzingu Androida, ale problem nie został rozwiązany i naiwnie sądziliśmy, że nikt inny tego nie zauważył.

Na koniec warto wspomnieć, że problem pojawił się od wersji jądra Linux 5.1 i został rozwiązany w aktualizacjach wydanych kilka dni temu w wersjach 5.16.2, 5.15.16, 5.10.93, 5.4.173.

poza tym Aktualizacje pakietów luk zostały już wydane dla RHELDebianfedora i Ubuntu. Chociaż rozwiązanie nie jest jeszcze dostępne w Arch LinuxGentooSUSE y otwórzSUSE.

W ich przypadku wspomniano, że jako rozwiązanie zabezpieczające dla systemów, które nie używają izolacji kontenerów, można ustawić wartość sysctl „user.max_user_namespaces” na 0:

Badacz, który zidentyfikował problem, opublikował demo exploita que umożliwia uruchamianie kodu jako root na Ubuntu 20.04 w domyślnej konfiguracji. Planuje się, że kod exploita zostaje opublikowany na GitHub w ciągu tygodnia po że dystrybucje wypuszczają aktualizację, która usuwa lukę.

W końcu jeśli chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły w następujący link.


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.

  1.   galicyjski powiedział

    Kolejny powód, aby nie dotykać snap kijem.