sudo root haavatavus, mis mõjutab Linux Mint ja Elementary OS

Utiliidis sudo, mida kasutatakse käskude täitmise korraldamiseks teiste kasutajate nimel, tuvastatud haavatavus (CVE-2019-18634), mis võimaldab teil suurendada oma õigusi süsteemis juurkasutajale. Probleem ilmneb alles pärast versiooni sudo 1.7.1 väljaandmist, kui kasutatakse failis /etc/sudoers suvandit „pwfeedback”, mis on vaikimisi keelatud, kuid lubatud mõnel distributsioonil, nagu Linux Mint ja Elementary OS. Probleem on väljalaskes parandatud sudo 1.8.31, avaldati paar tundi tagasi. Turustuskomplektides jääb haavatavus parandamata.

Valik “pwfeedback” võimaldab parooli sisestamisel kuvada pärast iga sisestatud tähemärki “*”. Sest Vead Funktsiooni getln() juurutamisel, mis on defineeritud failis tgetpass.c, ei pruugi teatud tingimustel standardse sisendvoo (stdin) kaudu edastatud liiga suur paroolistring eraldatud puhvrisse mahtuda ja muud pinu andmed üle kirjutada. Ületäitumine toimub sudo-koodi käivitamisel administraatorina.

Probleemi olemus seisneb selles, et kui kasutate sisestuse ajal erimärki ^U (rea puhastamine) ja kui kirjutamisoperatsioon ebaõnnestub, lähtestab väljundi “*” märkide kustutamise eest vastutav kood andmed saadaoleva puhvri suuruse kohta, kuid ei tee seda. vii kursor algväärtuse praegusesse positsiooni puhvris. Teine ärakasutamist soodustav tegur on "pwfeedback" režiimi automaatse väljalülitamise puudumine, kui andmed ei saabu mitte terminalist, vaid sisendvoo kaudu (see viga võimaldab luua tingimused salvestusvea tekkeks näiteks süsteemides ühesuunaline nimetuid kanaleid lugemiskanali lõppu kirjutamisel ilmneb viga).

Kuna ründajal on täielik kontroll pinus olevate andmete ülekirjutamise üle, pole keeruline luua ärakasutamist, mis võimaldab tal oma õigusi juurutada. Probleemi saab ära kasutada iga kasutaja, olenemata sudo lubadest või sudoeri kasutajaspetsiifilistest sätetest. Probleemi blokeerimiseks tuleks veenduda, et failis /etc/sudoers pole sätet “pwfeedback” ja vajadusel see keelata (“Vaikimisi !pwfeedback”). Probleemi kontrollimiseks võite käivitada koodi:

$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Parool: segmenteerimise viga

Allikas: opennet.ru

Lisa kommentaar