W jądrze Linux wykryto eksploatowane luki w nf_tables, watch_queue i IPsec

W jądrze Linuksa wykryto kilka niebezpiecznych luk, które pozwalają lokalnemu użytkownikowi na podniesienie swoich uprawnień w systemie. Dla wszystkich omawianych problemów przygotowano robocze prototypy exploitów.

  • Luka (CVE-2022-0995) w podsystemie śledzenia zdarzeń watch_queue, prowadząca do zapisu danych w obszarze pamięci jądra poza przydzielonym buforem. Atak może być przeprowadzony przez dowolnego użytkownika bez przywilejów i może doprowadzić do uruchomienia własnego kodu z uprawnieniami jądra. Luka występuje w funkcji watch_queue_set_size() i związana jest z próbą oczyszczenia wszystkich wskaźników w liście, nawet jeśli dla nich nie przydzielono pamięci. Problem objawia się przy kompilacji jądra z opcją „CONFIG_WATCH_QUEUE=y”, która jest używana w większości dystrybucji Linuksa.

    Luka została usunięta w poprawce dodanej do jądra 11 marca. Można śledzić publikacje aktualizacji pakietów w dystrybucjach na tych stronach: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Prototyp exploita jest już publicznie dostępny i pozwala na uzyskanie uprawnień root podczas uruchamiania w Ubuntu 21.10 z jądrem 5.13.0-37.

    W jądrze Linux wykryto eksploatowane luki w nf_tables, watch_queue i IPsec
  • Luka (CVE-2022-27666) w modułach jądra esp4 i esp6 z realizacją transformacji ESP (Encapsulating Security Payload) dla IPsec, stosowanych w przypadku korzystania z IPv4 i IPv6. Luka pozwala lokalnemu użytkownikowi z normalnymi uprawnieniami na nadpisanie obiektów w pamięci jądra i podniesienie swoich uprawnień w systemie. Problem spowodowany jest brakiem weryfikacji przydzielonego rozmiaru pamięci i faktycznie otrzymanych danych, przy czym maksymalny rozmiar wiadomości mógł przekraczać maksymalny rozmiar pamięci przydzielonej dla struktury skb_page_frag_refill.

    Luka została usunięta w jądrze 7 marca (poprawiona w 5.17, 5.16.15 itd.). Można śledzić publikacje aktualizacji pakietów w dystrybucjach na tych stronach: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Roboczy prototyp exploita, który pozwala zwykłemu użytkownikowi uzyskać uprawnienia root w konfiguracji Ubuntu Desktop 21.10, już został umieszczony na GitHubie. Twierdzi się, że po drobnych zmianach exploit będzie również działał w Fedora i Debian. Ciekawe, że exploit pierwotnie został przygotowany na zawody pwn2own 2022, ale deweloperzy jądra wykryli i poprawili związany z nim błąd, dlatego postanowiono ujawnить szczegóły luki.

  • Dwie podatności (CVE-2022-1015, CVE-2022-1016) w podsystemie netfilter w module nf_tables, który obsługuje filtrację pakietów nftables. Pierwszy problem pozwala lokalnemu użytkownikowi bez uprawnień na zapis poza przydzielonym bufferem na stosie. Przepełnienie występuje podczas przetwarzania w odpowiedni sposób sformułowanych wyrażeń nftables, które są przetwarzane na etapie sprawdzania indeksów określonych przez użytkownika mającego dostęp do reguł nftables.

    Podatność wynika z tego, że programiści zakładali, że wartość „enum nft_registers reg” to jeden bajt, podczas gdy przy włączonych pewnych optymalizacjach kompilator, zgodnie ze specyfikacją C89, może używać 32-bitowej wartości. Z powodu tej cechy rozmiar używany w trakcie sprawdzania i przydzielania pamięci nie odpowiada faktycznemu rozmiarowi danych w strukturze, co prowadzi do nałożenia ogona struktury na wskaźniki na stosie.

    Problem może być wykorzystany do wykonania własnego kodu na poziomie jądra, ale aby atak był skuteczny, wymagany jest dostęp do nftables, który można uzyskać w oddzielnej przestrzeni nazw sieci (network namespaces) przy posiadaniu uprawnień CLONE_NEWUSER lub CLONE_NEWNET (na przykład przy możliwości uruchomienia izolowanego kontenera). Podatność jest również ściśle związana z używanymi przez kompilator optymalizacjami, które są na przykład włączane podczas kompilacji w trybie „CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y”. Wykorzystanie podatności jest możliwe od jądra Linux 5.12.

    Druga podatność w netfilter występuje z powodu odwołania do już zwolnionej pamięci (use-after-free) w obróbce nft_do_chain i może prowadzić do wycieku niezinicjalizowanych obszarów pamięci jądra, które można odczytać poprzez manipulacje wyrażeniami nftables i wykorzystać na przykład do określenia adresów wskaźników przy opracowywaniu exploitów dla innych podatności. Wykorzystanie podatności jest możliwe od jądra Linux 5.13.

    Luki zostały usunięte w dzisiejszych aktualizacjach jądra 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 i 4.9.309. Informacje o publikacji aktualizacji pakietów w dystrybucjach można znaleźć na tych stronach: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Badacz, który odkrył problemy, ogłosił przygotowanie funkcjonujących exploitów dla obu luk, które planuje opublikować w ciągu kilku dni, po tym jak dystrybucje wydadzą aktualizacje pakietów z jądrem.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster