Luka w podsystemie jądra Linux Filtr sieciowy

W Netfilterze, podsystemie jądra LinuxOdkryto lukę w zabezpieczeniach (CVE-2021-22555) w narzędziu do filtrowania i modyfikacji pakietów sieciowych. Luka ta umożliwia użytkownikowi lokalnemu uzyskanie uprawnień roota w systemie, również w izolowanym kontenerze. Przygotowano do testów działający prototyp exploita omijającego mechanizmy ochrony KASLR, SMAP i SMEP. Badacz, który odkrył lukę, otrzymał od Google nagrodę w wysokości 20 000 dolarów za znalezienie metody ominięcia izolacji kontenera Kubernetes w klastrze kCTF.

Problem występuje od jądra 2.6.19 wydanego 15 lat temu i jest spowodowany błędem w procedurach obsługi IPT_SO_SET_REPLACE i IP6T_SO_SET_REPLACE, który powoduje przepełnienie bufora podczas wysyłania specjalnie sformatowanych parametrów poprzez wywołanie setsockopt w trybie zgodności. W normalnych okolicznościach tylko użytkownik root może wywołać funkcję compat_setsockopt(), ale uprawnienia wymagane do przeprowadzenia ataku może uzyskać także użytkownik nieuprzywilejowany w systemach z włączoną obsługą przestrzeni nazw użytkowników.

Użytkownik może utworzyć kontener z osobnym użytkownikiem root i wykorzystać lukę w zabezpieczeniach. Na przykład „przestrzenie nazw użytkowników” są domyślnie włączone w Ubuntu i Fedora, ale nie aktywowane w Debian i RHEL. Poprawka naprawiająca lukę została zaakceptowana w jądrze. Linux 13 kwietnia. Projekty już wygenerowały aktualizacje pakietów. Debian, Łuk Linux i Fedora. W Ubuntu, Aktualizacje RHEL i SUSE są w przygotowaniu.

Problem występuje w funkcji xt_compat_target_from_user() z powodu nieprawidłowego obliczenia rozmiaru pamięci podczas zapisywania struktur jądra po konwersji z reprezentacji 32-bitowej na 64-bitową. Błąd umożliwia zapisanie czterech bajtów zerowych w dowolnej pozycji poza przydzielonym buforem ograniczonym przesunięciem 0x4C. Cecha ta okazała się wystarczająca do stworzenia exploita pozwalającego na uzyskanie praw roota - poprzez wyczyszczenie wskaźnika m_list->next w strukturze msg_msg stworzono warunki dostępu do danych po zwolnieniu pamięci (use-after-free), co została następnie wykorzystana do uzyskania informacji o adresach i zmianach w innych strukturach poprzez manipulację wywołaniem systemowym msgsnd().

Źródło: opennet.ru

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster