Linuxi tuumas tuvastati kaks haavatavust, mis sarnanevad mõned päevad tagasi avalikustatud Copy Fail haavatavusele, kuid ilmnevad teiste alamsüsteemide, nagu xfrm-ESP ja RxRPC, kaudu. Haavatavuste seeriale on antud koodnimi Dirty Frag (mõnikord mainitakse ka Copy Fail 2). Need haavatavused võimaldavad õigusteta kasutajal saada root-kasutaja õigused, kirjutades üle protsessi andmed leheküljecache'is. Eksploit on saadaval, mis töötab kõigis uusimates Linuxi jaotustes. Haavatavuse teave on avalikustatud enne paranduste avaldamist, kuid probleemide blokeerimiseks on olemas mööndusmeetod.
Dirty Frag hõlmab kahte erinevat haavatavust: esimene xfrm-ESP moodulis, mida kasutatakse IPsec-i krüpteerimisoperatsioonide kiirendamiseks ESP (Encapsulating Security Payload) protokolli abil, ja teine RxRPC draiveris, mis rakendab AF_RXRPC soklite perekonda ning vastavat RPC-protokolli, mis töötab UDP üle. Iga haavatavus eraldi võimaldab saavutada root-kasutaja õigusi. Haavatavus xfrm-ESP-s on Linuxi tuumas ilmnenud alates 2017. aasta jaanuarist, samas kui RxRPC haavatavus on tuntud alates 2023. aasta juunist. Mõlemad probleemid on põhjustatud optimeerimisest, mis võimaldab otse kirjutada leheküljecache'i.
xfrm-ESP haavatavuse kasutamiseks peab kasutajal olema õigused nimede ruumide loomiseks, ja RxRPC haavatavuse kasutamiseks peab olema võimalus laadida kernelimoodul rxrpc.ko. Näiteks Ubuntu's on AppArmore'i reeglites ebaõigustatud kasutajatele keelatud nimede ruumide loomine, kuid vaikimisi laaditakse moodul rxrpc.ko. Mõnes jaotuses puudub moodul rxrpc.ko, kuid nimede ruumide loomine ei ole blokeeritud. Probleemi avastanud teadlane valmistas ette kombineeritud eksploidi, mis suudab rünnata süsteemi läbi mõlema haavatavuse, võimaldades probleemist kasu saada kõigis peamistes jaotustes. Eksploidi töö on kinnitatud Ubuntu 24.04.4 versiooniga koos kerneliga 6.17.0-23, RHEL 10.1 koos kerneliga 6.12.0-124.49.1, openSUSE Tumbleweed koos kerneliga 7.0.2-1, CentOS Stream 10 koos kerneliga 6.12.0-224, AlmaLinux 10 koos kerneliga 6.12.0-124.52.3 ja Fedora 44 koos kerneliga 6.19.14-300.
Nagu Copy Fail haavatavusega, on probleemi xfrm-ESP ja RxRPC puhul põhjustatud andmete dekrüptimise teostamisest kohapeal, kasutades funktsiooni splice(), mis edastab andmeid failide descriptorite ja torude (pipe) vahel ilma kopeerimiseta, viidates elementidele lehe vahemälus. Kirjutamise operatsiooni offset'id arvutati ilma vajalike kontrollideta, mis arvestaksid otseviidet elementidele lehe vahemälus, mis võimaldas saata spetsiaalselt vormindatud päringute kaudu üle kirjutada 4 baiti valitud offset'is ja muuta lehe vahemälu sisu mis tahes failist.
Kõik failide lugemisoperatsioonid tagastavad esmalt sisu lehe vahe mälu kaudu. Kui lehe vahe mälu andmed muutuvad, toovad failide lugemisoperatsioonid kaasa mitte tegelikult salvestatud teabe, vaid muudetud andmed. Haavatavuse ärakasutamine seisneb lehe vahe mälu muutmises suid rooti lipuga täitmiseks ette nähtud faili jaoks. Näiteks root-õiguste hankimiseks võib lugeda täitmisfaili /usr/bin/su, et see paigutada lehe vahe mällu, seejärel saavutada enda koodi asendamine selles failis laaditud sisu sees. Järgmine utiliidi „su” käivitamine toob kaasa selle, et mälu laaditakse mitte originaalfail, vaid muudetud koopia lehe vahe mälust.
Haavatavuste teabe avalikustamine ja koordineeritud värskenduste väljalaskmine oli planeeritud 12. maiks, kuid teabe lekkimise tõttu tuli haavatavuse andmed avalikustada enne parandusfailide väljaandmist. Aprilli lõpus avaldati netdevi avalikus postitusloendis rxrpc, ipsec ja xfrm patchid, ilma et oleks mainitud, et need on seotud haavatavuse kõrvaldamisega. 5. mail nõustus IPsec alamsüsteemi hooldaja netdevi git-repositooriumis xfrm-esp mooduli parandusettepanekuga, mille kirjeldus kordas suuresti probleemi, mis viis Copy Fail haavatavuse tekkimiseni algif_aead moodulis. Üks turva-uuringute teostaja oli selle paranduse vastu huvi tunnenud, suutis luua funktsionaalse eksploidimise ja avaldas selle, teadmata, et probleemi kohta teabe avalikustamine oli 12. maieni keelatud.
Linuxi tuuma ja paketivärskendusi distributsioonides pole veel avaldatud, kuid probleemide lahendamiseks on saadaval plaastrid — xfrm-esp ja rxrpc. CVE-identifikaatoreid ei ole määratud, mis raskendab pakettide värskenduste jälgimist distributsioonides. Kaitseks saab tuumamoodulite esp4, esp6 ja rxrpc laadimise blokeerida: sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"
Allikas: opennet.ru
