Wykryto błąd w module odśmiecania systemu Linux, który może prowadzić do eskalacji uprawnień 

luka w zabezpieczeniach systemd

Kilka dni temu Jann Horn z zespołu Google Project Zero, kto wcześniej zidentyfikował luki w zabezpieczeniach Spectre i Meltdown, ujawnili technikę wykorzystania luki znalezione w garbage collectorze jądra Linux (CVE-2021-4083).

Słaby punkt jest spowodowane warunkami wyścigu kiedy usuwane są deskryptory plików gniazd uniksowych i potencjalnie umożliwia nieuprzywilejowanemu użytkownikowi lokalnemu wykonanie kodu na poziomie jądra.

Problem jest ciekawa, ponieważ okno czasowe podczas których ma miejsce sytuacja wyścigu została oceniona jako zbyt mała do tworzenia prawdziwych podatności, ale autor badania wykazał, że nawet początkowo sceptyczne podatności mogą stać się źródłem prawdziwych ataków, jeśli twórca podatności ma niezbędne umiejętności i czas.

Jan Horn pokazali, jak przy pomocy filigranowych manipulacji można zredukować stan Wyścig, który ma miejsce podczas jednoczesnego wywołania funkcji close() i fget() w celu w pełni wykorzystanej luki use-after-free i uzyskania dostępu do już uwolnionej struktury danych w jądrze.

Występuje sytuacja wyścigu podczas procesu zamykania deskryptora pliku podczas jednoczesnego wywoływania funkcji close() i fget(). Wywołanie close() może zostać wykonane przed wykonaniem fget(), co zmyli kolektor elementów nieużywane, ponieważ według refcount struktura pliku nie będzie miała odniesień zewnętrznych, ale pozostanie dołączona do deskryptora pliku, tj. garbage collector założy, że ma wyłączny dostęp do struktury, ale w rzeczywistości przez krótki okres czasu, pozostały wpis w tablicy deskryptorów plików będzie nadal wskazywał, że struktura jest zwalniana.

Aby zwiększyć prawdopodobieństwo wejście w stan wyścigu, zastosowano kilka sztuczek, które pozwoliły zwiększyć prawdopodobieństwo sukcesu gospodarstwa na poziomie 30% podczas wykonywania określonych optymalizacji systemu. Przykładowo, aby wydłużyć czas dostępu do struktury z deskryptorami plików o kilkaset nanosekund, dane zostały wyczyszczone z pamięci podręcznej procesora, zanieczyszczając pamięć podręczną aktywnością na innym rdzeniu procesora, co umożliwiło zwrócenie struktury z pamięci i nie szybka pamięć podręczna procesora.

Druga ważna cecha było wykorzystanie przerwań generowanych przez zegar sprzętowy aby wydłużyć czas wyścigu. Taktowanie zostało wybrane tak, aby program obsługi przerwań uruchamiał się podczas wystąpienia sytuacji wyścigu i przez chwilę wykonywał kod przerwania. Aby jeszcze bardziej opóźnić powrót kontroli, epoll wygenerował około 50 tysięcy wpisów w kolejce, co wymagało iteracji w obsłudze przerwań.

Technika wykorzystywanie podatności została ujawniona po 90-dniowym okresie nieujawniania. Problem

i został naprawiony na początku grudnia. Poprawka została zawarta w jądrze 5.16, a także przeniesiona do gałęzi LTS jądra i pakietów z jądrem dostarczonych w dystrybucjach. Należy zauważyć, że podatność została zidentyfikowana podczas analizy podobnego problemu CVE-2021-0920, który objawia się w garbage collectorze podczas przetwarzania flagi MSG_PEEK.

Inna znaleziona luka ostatnio w jądrze Linuksa był to CVE-2022-0742 oferuje nasz konfigurator może wyczerpać dostępną pamięć i zdalnie spowodować odmowę usługi wysyłając specjalnie spreparowane pakiety icmp6. Problem jest związany z przeciekiem pamięci, który występuje podczas przetwarzania komunikatów ICMPv6 z typami 130 lub 131.

Problem występuje od jądra 5.13 i został naprawiony w wersjach 5.16.13 i 5.15.27. Problem nie dotyczył stabilnych gałęzi Debiana, SUSE, Ubuntu LTS (18.04, 20.04) i RHEL, został naprawiony w Arch Linux.

W końcu jeśli chcesz dowiedzieć się więcej na ten temat notatki możesz sprawdzić szczegóły w poniższy 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.