Odkryli lukę w podsystemie eBPF Linuksa

Niedawno pojawiły się wiadomości wykryto lukę (CVE-2021-29154) w podsystemie eBPF, który sUmożliwia śledzenie, analizę podsystemów i kontrolery kontroli ruchu działający w jądrze Linuksa na specjalnej maszynie wirtualnej JIT, która umożliwia lokalnemu użytkownikowi uruchomienie kodu na poziomie jądra.

Według badaczy, którzy zidentyfikowali lukę, byli w stanie opracować działający prototyp exploita dla 86-bitowych i 32-bitowych systemów x64, z którego może korzystać nieuprzywilejowany użytkownik.

W tym samym czasie Red Hat zauważa, że ​​powaga problemu zależy od dostępności wywołania systemowego eBPF. dla użytkownika. Na przykład w RHEL i większości innych dystrybucji Linuksa domyślnie lukę można wykorzystać, gdy włączony jest BPF JIT, a użytkownik ma uprawnienia CAP_SYS_ADMIN.

W jądrze Linuksa wykryto problem, którego mogą nadużywać
nieuprzywilejowani użytkownicy lokalni do eskalacji uprawnień.

Problem polega na tym, jak kompilatory BPF JIT obliczają dla niektórych architektur
Przesunięcia gałęzi podczas generowania kodu maszynowego. To może być nadużywane
stworzyć anomalny kod maszynowy i uruchomić go w trybie jądra,
gdzie przepływ kontroli jest przechwytywany w celu wykonania niezabezpieczonego kodu.

I właśnie to wyszczególniają problem jest spowodowany błędem generowanym podczas obliczania przesunięcia instrukcji rozgałęziania podczas kompilatora JIT, który generuje kod maszynowy.

W szczególności wspomina się, że podczas generowania instrukcji rozgałęziających nie jest brane pod uwagę, że przemieszczenie może ulec zmianie po przejściu przez etap optymalizacji, więc ta awaria może zostać wykorzystana do wygenerowania anomalnego kodu maszynowego i wykonania go na poziomie jądra.

Należy zauważyć, że To nie jedyna luka w podsystemie eBPF, która stała się znana w ostatnich latach, ponieważ pod koniec marca w jądrze zidentyfikowano jeszcze dwie luki (CVE-2020-27170, CVE-2020-27171), które zapewniają możliwość wykorzystania eBPF do ominięcia ochrony przed podatnościami klasy Spectre, które pozwalają na określenie zawartości pamięci jądra i co skutkuje stworzeniem warunków do spekulacyjnego wykonywania niektórych operacji.

Atak Spectre wymaga obecności określonej sekwencji poleceń w kodzie uprzywilejowanym, co prowadzi do spekulatywnego wykonania instrukcji. W eBPF znaleziono kilka sposobów generowanie takich instrukcji poprzez manipulacje programami BPF przesłanymi w celu ich wykonania.

  • Luka CVE-2020-27170 jest spowodowana manipulacjami wskaźnikami w module sprawdzającym BPF, co powoduje, że operacje spekulacyjne uzyskują dostęp do obszaru poza buforem.
  • Luka CVE-2020-27171 jest związana z błędem niedomiaru liczb całkowitych podczas pracy ze wskaźnikami, co prowadzi do spekulacyjnego dostępu do danych spoza bufora.

Te problemy zostały już naprawione w wersjach jądra 5.11.8, 5.10.25, 5.4.107, 4.19.182 i 4.14.227 i zostały uwzględnione w aktualizacjach jądra dla większości dystrybucji Linuksa. Badacze przygotowali prototyp exploita, który umożliwia nieuprzywilejowanemu użytkownikowi pobranie danych z pamięci jądra.

Jeśli chodzi o jedno z rozwiązań proponowane w Red Hat to:

Łagodzenie:

Ten problem nie dotyczy domyślnie większości systemów. Administrator musiałby włączyć mechanizm JIT BPF, aby miał to wpływ.

Można go natychmiast wyłączyć poleceniem:

# echo 0 > /proc/sys/net/core/bpf_jit_enable

Lub można go wyłączyć dla wszystkich kolejnych uruchomień systemu, ustawiając wartość w /etc/sysctl.d/44-bpf -jit-disable

## start file ##
net.core.bpf_jit_enable=0</em>
end file ##

W końcu jeśli chcesz dowiedzieć się więcej na ten temat o tej luce, możesz sprawdzić szczegóły w poniższy link.

Warto wspomnieć, że problem utrzymuje się do wersji 5.11.12 (włącznie) i nie został jeszcze rozwiązany w większości dystrybucji, mimo że poprawka jest już na miejscu. dostępne jako łatka.


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.