PinTheft — kuues Copy Fail klassi haavatavus, mis annab Linuxis root Ă”igused

Ava on paljastatud kuues haavatavus (1, 2-3, 4, 5), mis vĂ”imaldab mittetĂ€ieliku Ă”igusega kohalikel kasutajatel teenida root-rekse, kirjutades andmeid lehe vahemĂ€lu. Haavatavus sai koodnimeks PinTheft. Ekspluateerimise prototĂŒĂŒp on saadaval. CVE-identifikaator pole veel mÀÀratud. Parandust on hetkel saadaval ainult plaastrina, mis avaldati 5. mail ning 11. mail kinnitati see netdev harusse, kuid ei ole veel kaasatud kerneli korrektsioonivĂ€ljaannetesse.

Haavatavus on olemas RDS (Reliable Datagram Sockets) vĂ”rgu protokolli teostuses, mis on mĂ”eldud sĂ”numite kiireks vahetamiseks klastris, minimaalsete viivitustega ja garanteeritud kohaletoimetamisega. RĂŒnnak on vĂ”imalik sĂŒsteemides, kus io_uring alamsĂŒsteem on lubatud (io_uring_disabled=0) ja kernel on kompileeritud CONFIG_RDS, CONFIG_RDS_TCP ja CONFIG_IO_URING valikutega. Ekspluateerimise toimimiseks peab sĂŒsteemis olema lugemiseks saadaval SUID-root lipuga tĂ€idetav fail.

RDS_TCP tuuma mooduli automaatseks laadimiseks nÔuab eksploiteerimine andmete saatmist RDS kaudu, kasutades transporti SO_RDS_TRANSPORT=2. MÀrgitakse, et testitud Linuxi distributsioonide seas on tuumamooduli rds vaikimisi saadaval ainult Arch Linuxis. Haavatavuse vÀltimiseks saab tuumamoodulite rds ja rds_tcp automaatlaadimise keelata: rmmod rds_tcp rds printf 'install rds /bin/false\ninstall rds_tcp /bin/false\n' > /etc/modprobe.d/pintheft.conf

Haavatavus tuleneb veast zerocopy mehhanismi rakenduses funktsioonis rds_message_zcopy_from_user(), mis muudab andmeid otse lehekĂŒljekaaslases, et vĂ€ltida liigset puhverserverit. Vale vÀÀrtuse tĂ”ttu rm->data.op_nents vĂ€ljas ei toimunud nurjumise korral puhastamist, mille tulemusel toimus mĂ€lu kahekordne vabastus (double-free). Vigase viidatud lugemise arvu tĂ”ttu sai andmeid lehekĂŒljekaaslasest ĂŒle kirjutada, manipuleerides io_uring fikseeritud puhvri viidaga.

ÜlejÀÀnud osas on eksploiteerimise mehhanism tĂŒĂŒpiline kĂ”ikidele sama klassi haavatavustele — rĂŒndaja suudab paigaldada suid root flag'iga programmi faili lehe vahemĂ€lu, pĂ€rast mida sisestab ta ELF-pealkirja koodi, et kĂ€ivitada /usr/bin/sh. PĂ€rast seda manipuleerimist toob programmi kĂ€ivitamine mĂ€llu mitte originaalse kĂ€ivitatava faili, vaid muudetud koopia lehe vahemĂ€lust. Erinevalt varasematest eksploiteerimistest on uus variant kohandatud ainult „su” utiliidi rĂŒndamiseks, kuid seda saab rakendada ka juhul, kui sĂŒsteemis on selliseid suid-programme nagu mount, passwd, chsh, newgrp, umount ja pkexec.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster