Root-haavatavus sudo-s, mis mõjutab Linux Mint ja Elementary OS

Utiliit sudo, mis kasutatakse teiste kasutajate nimel käskude täitmise korraldamiseks, tuvastatud haavatavus (CVE-2019-18634), 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 sudo 1.8.31, mis avaldati mitu tundi tagasi. Jaotustes on haavatavus siiani parandamata.

„pwfeedback“ valik lubab sisestatud sümbolite järel kuvada tähise „*“ parooli sisestamisel. Kuna vead 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 nimetutega kanalitel 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

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster