Utiliit , mis kasutatakse teiste kasutajate nimel kĂ€skude tĂ€itmise korraldamiseks, haavatavus (), mis vĂ”imaldab sĂŒsteemi Ă”iguste tĂ”stmist kasutajaks root. Probleem ilmneb alates sudo versioonist 1.7.1 ainult siis, kui /etc/sudoers failis on aktiveeritud âpwfeedbackâ valik, mis on vaikimisi keelatud, kuid aktiveeritud mĂ”nedes jaotustes, nagu Linux Mint ja Elementary OS. Probleem on lahendatud versioonis , mis avaldati mitu tundi tagasi. Jaotustes on haavatavus siiani parandamata.
âpwfeedbackâ valik lubab sisestatud sĂŒmbolite jĂ€rel kuvada tĂ€hise â*â parooli sisestamisel. Kuna getln() funktsiooni rakenduses, mis on mÀÀratletud failis tgetpass.c, vĂ”ib teatud tingimustel liiga suur paroolist sĂ”num, mis edastatakse standardse sisendvoo (stdin) kaudu, mitte mahtuda eraldatud mĂ€llu ning ĂŒle kirjutada teisi andmeid virnas. Ălevool toimub sudo-koodi tĂ€itmise ajal ĂŒhe root'i Ă”igustes.
Probleemi olemus on see, et erisĂŒmboli ^U (rea kustutamine) kasutamisel ja kirjutamise operatsiooni tĂ”rkel, kood, mis vastutab vĂ€ljundis kuvatu tĂ€hist â*â eemaldamise eest, nullib mĂ€lu piirangud, kuid ei taasta praeguse positsiooni nĂ€itajat mĂ€lu algsesse olekusse. Teine tegur, mis soodustab ekspluateerimist, on âpwfeedbackâ reĆŸiimi automaatse vĂ€ljalĂŒlitamise puudumine sisendi voogude korral, mitte terminali kaudu (see puudus vĂ”imaldab luua tingimusi kirjutamisvea tekkimiseks, nĂ€iteks ĂŒhesuunaliste tĂ”rge tekib katse korral kirjutada lugemis kanali lĂ”ppu).
Kuna rĂŒndaja vĂ”ib tĂ€ielikult kontrollida virna andmete ĂŒlekirjutamist, ei ole raske luua eksploitatsioonikoodi, mis tĂ”stab Ă”igused kasutajaks root. Probleemi saab Ă€ra kasutada iga kasutaja, sĂ”ltumata sudo kasutusoigustest ja isiklikest seadistustest sudoers failis. Probleemi blokeerimiseks tuleks veenduda, et /etc/sudoers failis ei oleks âpwfeedbackâ seadet ja vajadusel see vĂ€lja lĂŒlitada (âDefaults !pwfeedbackâ). Probleemi olemasolu kontrollimiseks saab kĂ€ivitada koodi:
$ perl -e âprint((âAâ x 100 . â\x{00}â) x 50)â | sudo -S id
Parool: segmenteerimisviga
Allikas: opennet.ru
