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

Utilities sudo, which is used to organize the execution of commands on behalf of other users, tuvastatud haavatavus (CVE-2019-18634), mis võimaldab tõsta oma õigusi süsteemis kasutajaks root. Probleem ilmneb alates sudo ei välistata 1.7.1, kui kasutatakse faili /etc/sudoers valikut „pwfeedback”, mis on vaikimisi keelatud, kuid aktiveeritud mõnes jaotuses, nagu Linux Mint ja Elementary OS. Probleem on parandatud versioonis sudo 1.8.31, mis avaldati mõned tunnid tagasi. Jaotustes jääb haavatavus siiski parandamata.

Valik „pwfeedback” aktiveerib sümboli „*” kuvamise iga sisestatud sümboli järel parooli sisestamisel. Selle tõttu vigade tõttu selle getln() funktsiooni rakenduses, mis on määratletud failis tgetpass.c, võib teatud tingimustel liiga suur parool, mis edastatakse standardse sisendi kaudu (stdin), mahtuda eraldatud puhvrisse ja üle kirjutada muid andmeid virnas. Ülevool tekib sudo koodi käivitamisel root-õigustega.

Probleemi sisu on selles, et spetsiaalse sümboli ^U (rea puhastamine) sisestamisel ja kirjutamisoperatsiooni ebaõnnestumise korral kustutamise eest vastutav kood, mis vabastab väljundis sümboleid „*“, taastab puhvri vabade mõõtmete andmed, kuid ei tagasta näitaja lähteseisundisse puhvris. Teine pahatahtliku tegevuse soodustav tegur on „pwfeedback“ režiimi automaatse väljalülitamise puudumine, kui andmed saavad sisendvoo kaudu, mitte terminalilt (see puudus võib luua tingimusi kirjutamisvea tekke jaoks, näiteks ühesuunaliste kanalitega süsteemides. nimetamata kanalid viga ilmneb katse korral kirjutada kanali lõppu lugemiseks).

Kuna ründaja saab täielikult kontrollida andmete üle kirjutamist mälust, ei ole liiga keeruline luua eksploidimist, mis tõstab tema õigused root kasutajaks. Probleemi saab kasutada mis tahes kasutaja, olenemata sudo õigustest ja erikasutaja seadistustest sudoers failis. Probleemi peatamiseks tuleb veenduda, et /etc/sudoers failis ei ole seadistust „pwfeedback“ ning vajadusel tuleb see välja lülitada („Defaults !pwfeedback“). Probleemi olemasolu kontrollimiseks saab käivitada järgmise koodi:

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

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster