Avalikustatud teave kuuenda haavatavuse (1, 2-3, 4, 5) kohta, mis vÔimaldab mittetÀielikul lokaalsel kasutajal saada root Ôigusi, kirjutades andmeid lehe vahemÀllu. Haavatavus sai koodnimeks PinTheft. Eksploidiprotekt on saadaval. CVE-koodi ei ole veel mÀÀratud. Parandust on seni saadaval ainult patchina, mis avaldati 5. mail ja 11. mail lisati netdev harusse, kuid ei ole veel tuumavÀrskendustes saadaval.
Haavatavus esineb RDS (Reliable Datagram Sockets) vĂ”rguprotokolli teostuses, mis on mĂ”eldud kiireks sĂ”numivahetamiseks klastris, minimaalsete viivitustega ja garanteeritud kohaletoimetamisega. RĂŒnnak on vĂ”imalik sĂŒsteemides, kus on sisse lĂŒlitatud io_uring alamsĂŒsteem (io_uring_disabled=0) ja tuum on kokku pandud CONFIG_RDS, CONFIG_RDS_TCP ja CONFIG_IO_URING valikute abil. Eksploidiks peab sĂŒsteemis olema lugemiseks saadaval SUID-rootiga tĂ€idetav fail.
Kerneli mooduli rds_tcp automaatseks laadimiseks nÔuab eksploid andmete saatmist RDS kaudu, kasutades transpordiks SO_RDS_TRANSPORT=2. TÔdetakse, et testitud Linuxi distributsioonide seas on vaikeseadistuses kerneli moodul rds saadaval ainult Arch Linuxis. Haavatavuse vÀltimiseks vÔib tÔrkevaru kaudu keelata rds ja rds_tcp kerneli moodulite automaatlaadimise: rmmod rds_tcp rds printf 'install rds /bin/false\ninstall rds_tcp /bin/false\n' > /etc/modprobe.d/pintheft.conf
Haavatavus on pĂ”hjustatud vea tĂ”ttu zerocopy mehhanismi teostamisel funktsioonis rds_message_zcopy_from_user(), mis muudab andmeid otse lehe vahemĂ€lus, et vĂ€ltida liigset puhverserverit. Veakohas ei tehtud rm->data.op_nents vĂ€lja puhastamist, mistĂ”ttu tekkis kahe kordne mĂ€luaadressi vabastamine (double-free). Vale vÀÀrtuse ilmumine viidatud loenduri puhul saadi Ă€ra kasutada lehe vahemĂ€lus andmete ĂŒle kirjutamiseks, manipuleerides io_uring fikseeritud puhvri nĂ€itajaga.
Muud aspektid kasutusehitusest on selles klassis haavatavuste jaoks tĂŒĂŒpilised â rĂŒndaja saavutab suid root-faili jĂ”udmise programmi lehe vahemĂ€llu, seejĂ€rel lisab ELF-pealkirjale koodi kĂ€ivitamiseks /usr/bin/sh. PĂ€rast seda manipulatsiooni kĂ€ivitamine programmi toob mĂ€llu mitte originaalse, vaid muudetud eksemplari vahemĂ€lust. Erinevalt varasematest eksploadidest on uus variant kohandatud ainult âsuâ utiliidi rĂŒndamiseks, kuid seda vĂ”ib kasutada ka siis, kui sĂŒsteemis on sellised suid-programmid nagu mount, passwd, chsh, newgrp, umount ja pkexec.
Allikas: opennet.ru
