W implementacji interfejsu asynchronicznego wejścia/wyjścia io_uring, wchodzącego w skład jądra Linux od wersji 5.1, zidentyfikowano lukę (CVE-2022-2602), która umożliwia nieuprzywilejowanemu użytkownikowi uzyskanie uprawnień roota w systemie. Problem został potwierdzony w gałęzi 5.4 oraz w jądrze, zaczynając od gałęzi 5.15.
Luka jest wynikiem odwołania do już zwolnionego bloku pamięci (use-after-free) w podsystemie io_uring, co zachodzi wskutek stanu wyścigu podczas przetwarzania żądania io_uring na docelowym pliku w trakcie zbierania śmieci dla gniazd Unix, jeśli zbieracz śmieci zwalnia wszystkie zarejestrowane deskryptory plików oraz deskryptor pliku, z którym pracuje io_uring. Aby sztucznie stworzyć warunki do ujawnienia luki, można opóźnić żądanie przy użyciu userfaultfd do momentu, gdy nastąpi zwolnienie pamięci przez zbieracz śmieci.
Badacze, którzy odkryli problem, ogłosili, że stworzyli działający exploit, który zamierzają opublikować 25 października, aby dać użytkownikom czas na zainstalowanie aktualizacji. Poprawka jest obecnie dostępna w postaci łaty. Aktualizacje dla dystrybucji jeszcze nie zostały wydane, ale można śledzić ich pojawienie się na stronach: Debian, Ubuntu, Gentoo, RHEL, Fedora, SUSE/openSUSE, Arch.
Źródło: opennet.ru
