Luka StackRot w jądrze Linux, umożliwiająca podniesienie swoich uprawnień

Przełożenie VMA (Virtual Memory Area) w jądrze Linux 6.1 z struktury danych „red-black tree” na „maple tree” doprowadziło do pojawienia się luki w zabezpieczeniach (CVE-2023-3269), pozwalającej nieuprzywilejowanemu użytkownikowi na wykonanie swojego kodu z uprawnieniami jądra. Luka, której nadano nazwę kodową StackRot, pojawia się od wersji jądra 6.1 i została usunięta w aktualizacjach 6.4.1, 6.3.11 i 6.1.37.

Struktura „maple tree” jest wariantem B-drzewa, który wspiera indeksację według zakresów wartości i został zaprojektowany dla efektywnego wykorzystania pamięci podręcznej nowoczesnych procesorów. W porównaniu do „red-black tree”, zastosowanie „maple tree” pozwala na osiągnięcie wyższej wydajności. Luka została spowodowana błędem w obsłudze rozszerzenia stosu — w strukturze „maple tree”, używanej do zarządzania obszarami pamięci wirtualnej w jądrze, wymiana węzła w drzewie mogła odbyć się bez zablokowania zapisu, co stworzyło możliwości odwołania się do obszaru pamięci po jego zwolnieniu (use-after-free).

Eksploatację luki utrudniało to, że węzły w strukturze „maple tree” są zwalniane w trybie opóźnionym z użyciem wywołań callback z blokadami RCU (Read-copy-update). Niemniej jednak, badaczom udało się pokonać napotkane trudności i przygotować działający exploit, który planują opublikować pod koniec lipca, aby dać użytkownikom czas na aktualizację swoich systemów. Eksploatacja możliwa jest w niemal wszystkich konfiguracjach jądra i wymaga jedynie minimalnych uprawnień.

Ź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