Zraniteľnosť jadra Linuxu umožňuje obísť izoláciu sandboxu Chrome

Bezpečnostní výskumníci zo spoločnosti Google identifikovali zraniteľnosť (CVE-2025-38236) v jadre systému Linux, ktorá umožňuje eskaláciu privilégií. Táto zraniteľnosť okrem iného umožňuje obísť mechanizmus izolácie sandboxu používaný v prehliadači Google Chrome a dosiahnuť spustenie kódu na úrovni jadra pri spúšťaní kódu v kontexte izolovaného procesu vykresľovania prehliadača Chrome (napríklad pri zneužívaní inej zraniteľnosti v prehliadači Chrome). Problém sa objavuje od jadra systému Linux verzie 6.9 a bol opravený v aktualizáciách jadra systému Linux verzií 6.1.143, 6.6.96, 6.12.36 a 6.15.5. Prototyp zraniteľnosti je k dispozícii na stiahnutie.

Zraniteľnosť je spôsobená implementačnou chybou v príznaku MSG_OOB, ktorý je možné nastaviť pre sockety AF_UNIX. Príznak MSG_OOB („out-of-band“) umožňuje pripojiť k odosielaným dátam ďalší bajt, ktorý si prijímač môže prečítať predtým, ako prijme zvyšok dát. Tento príznak bol pridaný do jadra Linuxu 5.15 na žiadosť spoločnosti Oracle a minulý rok bol navrhnutý na zastaranie, pretože sa bežne nepoužíval.

Implementácia sandboxu v prehliadači Chrome umožňovala operácie so socketmi UNIX a systémové volania send()/recv(), kde bol povolený príznak MSG_OOB spolu s ďalšími možnosťami a nebol samostatne filtrovaný. Chyba v implementácii MSG_OOB umožňovala výskyt podmienky „use-after-free“ po vykonaní určitej sekvencie systémových volaní: 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, MSG_OOB); send(socks[0], "A", 0, MSG_OOB); recv(socks[1], &dummy, XNUMX, XNUMX); recv(ponožky[XNUMX], &dummy, XNUMX, MSG_OOB);

Zdroj: opennet.ru