Recientemente sudo utiliidis avaldati haavatavus (kasutatakse ühele programmile administraatoriõiguste andmise korraldamiseks või teiste kasutajate nimel käskude täitmiseks) kataloogi "CVE-2019-18634" mis võimaldab teil oma privileege suurendada süsteemis juurkasutaja jaoks.
Probleem avastati pärast sudo versiooni 1.7.1 väljaandmist kuni versioonini 1.8.29, mis saab kasutada ainult failis / etc / sudoers oleva valiku "pwfeedback" kasutamisel, mis on sudo hilisemates versioonides vaikimisi keelatud, kuid see on aktiveeritud mõnes jaotuses, näiteks Linux Mint ja Elementary OS.
Valik "pwfeedback" võimaldab kuvada märki "*" pärast iga parooli sisestamisel sisestatud märki.
Funktsiooni getln () rakendamise vea tõttu määratletud failis tgetpass.c standardses sisendjärjestuses (stdin), liiga pikk parooliga rida ei pruugi eraldatud puhvrisse mahtuda ja korstnas muud andmed üle kirjutada. Ülevool tekib sudo-koodi käivitamisel juurõigustega.
Probleemi olemus on see siis, kui seda kasutatakse erimärk ^ U sisestusprotsessi ajal (rea kustutamine) ja kui kirjutamistoiming ebaõnnestub, lähtestab väljundmärkide kustutamise eest vastutav kood "*" andmed olemasoleva puhvri suuruse kohta, kuid ei too kursorit tagasi puhvri algsesse väärtusesse.
Teine toimingut soodustav tegur on pwfeedback-režiimi automaatse väljalülituse puudumine. kui andmed võetakse vastu mitte terminalist, vaid sisendvoo kaudu (see defekt võimaldab luua tingimused salvestusvea jaoks, näiteks süsteemides, kus on nimetamata ühesuunalised kanalid, tekib viga, kui proovitakse salvestada kanali lõpp lugemiseks).
Kuna ründaja saab virnas olevate andmete ülekirjutamist täielikult kontrollida, pole keeruline luua sellist ekspluateerimist, mis võimaldab teil juurkasutaja õigusi suurendada.
Probleemi saab kasutada iga kasutaja, olenemata sudo kasutamise õigustest ja kasutajaspõhiste seadete olemasolust sudoerites.
Sudoõigustega kasutaja saab kontrollida, kas «pwtagasiside»See on lubatud käivitades:
sudo -l
Jah "pwtagasiside»Ilmub väljundis« Sobivad vaikeväärtuste kirjed », mille konfiguratsioon on higistab ta näib olevat mõjutatud. Järgmises näites higistab on haavatav:
sudo -l Matching Defaults entries for “USER” on linux-build: insults, pwfeedback, mail_badpass, mailerpath=/usr/sbin/sendmail
Kasutaja USER saab Linux-buildis käivitada järgmised käsud:
(ALL: ALL) ALL
Vea kohta selgitatakse, et viga saab kasutada ilma sudo-õigusteta, see nõuab ainult seda pwtagasiside on lubatud. Viga saab korrata, kui paroolilt küsides suunatakse sudo kaudu suur toru läbi toru.
Näiteks:
perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id Password: Segmentation faultSellel haavatavusel on kaks viga:
-
Valikut "pwfeedback" ei eirata, nagu peakski olema, lugedes muust kui lõppseadmest. Terminali puudumise tõttu jääb rea kustutamise märgi salvestatud versioon oma initsialiseeritud väärtuseks 0.
-
Tärnirea puhastav kood ei lähtesta puhvri positsiooni õigesti, kui esineb kirjutamisviga, kuid lähtestab puhvri järelejäänud pikkuse. Selle tulemusena saab funktsioon getln () puhvri lõpust mööda kirjutada.
Lõpuks väidetavalt on probleem lahendatud sudo 1.8.31 versioonis, avaldatud mõni tund tagasi. Kuigi jaotustes on haavatavus parandamata nii et küsitakse mõjutatud levituste kasutajatelt või et nad tuvastavad, et pwtagasiside on failis / etc / sudoers, uuendus sudo uuele versioonile.
Seda mainitakse probleemi blokeerimiseks, kõige olulisem on see, et peate kontrollima, kas konfiguratsioon /pwtagasiside mitte sisse / etc / sudoers ja vajadusel tuleb see deaktiveerida.
allikas: https://www.openwall.com