Avalikult on saadaval eksploitee seitsmendale haavatavusele (1, 2-3, 4, 5, 6) Linuxi tuumas, mis võimaldab mitteprivileegitud lokaalsel kasutajal saada root õigused, salvestades andmeid lehepuuduses. CVE identifikaator pole veel määratud, väljaspool eksploiteerimiskoodi ei ole probleemi kohta veel teavet. Parandus on saadaval ainult patšina, mis avaldati 20. mail ja 21. mail võeti see Linuxi tuuma peavoolu (korrektiivsed tuuma väljastused pole veel saadaval).
Haavatavus on seotud GRO (Generic Receive Offload) tehnoloogia rakendamisega, mida kasutatakse segmentide töötlemise kiirendamiseks. Haavatavus tuleneb veast zerocopy mehhanismi rakendamises funktsioonis skb_gro_receive(), mis muudab otse andmeid lehe vahemälu sisse, et vältida liigset puhverdamist. Kui lipp SKBFL_MANAGED_FRAG_REFS oli seadistatud, jäeti tähelepanuta vabastatud mälu lehtede viidete salvestamine shinfo->frags väljal, mille järel liideti see väljad teise skb-ga, muutes viidete arvnumbrit, mis viis mälule juurdepääsuni pärast selle vabastamist (use-after-free). Probleemi oli võimalik ära kasutada lehe vahemälu andmete üle kirjutamiseks, manipuleerides io_uringi bufriga.
Rünnaku sihtmärgiks on süsteemid, kus on lubatud io_uring alamsüsteem (io_uring_disabled=0). Eksploiti täitmiseks peab süsteemis olema lugemisõigused omav SUID-rootiga käivitatav fail. Eksploitatsioonimehhanism seisneb selles, et ründaja saavutab kasutajabaasi langemise leheküljekassasse ja seejärel asendab kassa rea «hax::0:0::/root:/bin/sh». Seejärel käivitatakse käsk «su hax», mis saab mitte originaalse kasutajabaasi jaotusest, vaid muudetud koopia, kus on vale sisselogimisnimi «hax», kellel on root õigused ja tühi parool. Eksploiti toimivust on testitud Ubuntu 24.04-s.
Allikas: opennet.ru
