Linuxi kerneli haavatavus võimaldab Chrome'i liivakasti isolatsioonist mööda hiilida

Google'i turvaeksperdid on tuvastanud Linuxi kernelis haavatavuse (CVE-2025-38236), mis võimaldab privileegide eskaleerimist. Muuhulgas võimaldab see haavatavus mööda hiilida Google Chrome'is kasutatavast liivakasti isolatsioonimehhanismist ja saavutada kerneli tasemel koodi käivitamise, kui koodi käivitatakse isoleeritud Chrome'i renderdamisprotsessi kontekstis (näiteks Chrome'i teise haavatavuse ärakasutamisel). Probleem ilmneb alates Linuxi kernelis 6.9 ja see parandati Linuxi kerneli värskendustes 6.1.143, 6.6.96, 6.12.36 ja 6.15.5. Haavatava haavatavuse prototüüp on allalaadimiseks saadaval.

Haavatavuse põhjustab MSG_OOB lipu rakendusviga, mida saab määrata AF_UNIX-i soklitele. MSG_OOB („väljaspool riba“) lipp võimaldab saadetavatele andmetele lisada täiendava baidi, mille vastuvõtja saab lugeda enne ülejäänud andmete vastuvõtmist. See lipp lisati Linux 5.15 kerneli Oracle'i palvel ja see pakuti eelmisel aastal aegumiseks välja, kuna seda ei kasutatud laialdaselt.

Chrome'i liivakasti implementatsioon lubas UNIX-i soklioperatsioone ja send()/recv() süsteemikõnesid, kus MSG_OOB lipp oli lubatud koos teiste valikutega ja seda eraldi ei filtreeritud. MSG_OOB implementatsiooni viga lubas pärast teatud süsteemikõnede jada käivitamist tekkida tingimusel „use-after-free”: 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(sokid[XNUMX], &dummy, XNUMX, MSG_OOB);

Allikas: opennet.ru

Lisa kommentaar