Badacze bezpieczeństwa z firmy Google zidentyfikowali w jądrze Linuxa podatność (CVE-2025-38236), która umożliwia podniesienie swoich uprawnień w systemie. Wśród innych możliwości, wada ta pozwala na ominięcie mechanizmu izolacji sandbox, stosowanego w Google Chrome, i osiągnięcie wykonania kodu na poziomie jądra w kontekście izolowanego procesu renderowania Chrome (na przykład podczas wykorzystywania innej podatności w Chrome). Problem występuje od jądra Linux 6.9 i został usunięty w aktualizacjach jądra Linux 6.1.143, 6.6.96, 6.12.36 i 6.15.5. Prototyp exploita jest dostępny do pobrania.
Podatność została spowodowana błędem w realizacji flagi MSG_OOB, którą można ustawić dla gniazd AF_UNIX. Flaga MSG_OOB („out-of-band”) pozwala dołączyć dodatkowy bajt do wysyłanych danych, który odbiorca może odczytać przed otrzymaniem pozostałych danych. Flaga ta została dodana w jądrze Linux 5.15 na prośbę Oracle i w zeszłym roku proponowano jej klasyfikację jako przestarzałą, ponieważ nie zdobyła szerokiego uznania.
W realizacji środowiska sandbox Chrome dozwolone były operacje na gniazdach UNIX oraz wywołania systemowe send()/recv(), w których flaga MSG_OOB była dopuszczalna obok innych opcji i nie była oddzielnie filtrowana. Błąd w realizacji MSG_OOB umożliwiał dostęp do pamięci po jej zwolnieniu (use-after-free) po wykonaniu określonej sekwencji wywołań systemowych: char dummy; int socks[2]; socketpair(AF_UNIX, SOCK_STREAM, 0, socks); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, 0); recv(socks[0], &dummy, 1, MSG_OOB);
Źródło: opennet.ru
