sudo root -haavoittuvuus, joka vaikuttaa Linux Mintiin ja Elementary OS -käyttöjärjestelmään

Apuohjelmassa sudo, jota käytetään järjestämään komentojen suorittaminen muiden käyttäjien puolesta, tunnistettu haavoittuvuus (CVE-2019-18634), jonka avulla voit lisätä järjestelmän pääkäyttäjän oikeuksia. Ongelma ilmenee vasta sudo 1.7.1:n julkaisun jälkeen, kun /etc/sudoers-tiedostossa käytetään "pwfeedback"-vaihtoehtoa, joka on oletuksena poistettu käytöstä, mutta käytössä joissakin jakeluissa, kuten Linux Mint ja Elementary OS. Ongelma korjattu julkaisussa sudo 1.8.31, julkaistu muutama tunti sitten. Haavoittuvuus on edelleen korjaamaton jakelusarjoissa.

"Pwfeedback" -vaihtoehto mahdollistaa "*"-merkin näyttämisen jokaisen syötetyn merkin jälkeen salasanaa syötettäessä. Koska Virheitä Tgetpass.c-tiedostossa määritetyn getln()-funktion toteutuksessa normaalin syöttövirran (stdin) kautta kulkeva liian suuri salasana ei välttämättä sovi tietyissä olosuhteissa varattuun puskuriin ja korvaa pinon muita tietoja. Ylivuoto tapahtuu käytettäessä sudo-koodia pääkäyttäjänä.

Ongelman ydin on, että käytettäessä erikoismerkkiä ^U (rivin tyhjennys) syötteen aikana ja jos kirjoitus epäonnistuu, koodi, joka vastaa ulostulon “*” merkkien tyhjentämisestä, nollaa tiedot käytettävissä olevan puskurin koon mukaan, mutta ei palauttaa osoittimen alkuperäisen arvon nykyiseen sijaintiin puskurissa. Toinen hyväksikäyttöön vaikuttava tekijä on se, että "pwfeedback"-moodia ei ole kytketty automaattisesti pois päältä, kun dataa ei tule päätteestä, vaan tulovirran kautta (tämä virhe mahdollistaa olosuhteiden luomisen tallennusvirheen esiintymiselle esimerkiksi järjestelmissä, joissa on yksisuuntainen nimettömiä kanavia tapahtuu virhe, kun yritetään kirjoittaa lukukanavan loppuun).

Koska hyökkääjä hallitsee täysin pinon tietojen päällekirjoittamista, ei ole vaikeaa luoda hyväksikäyttöä, jonka avulla hän voi laajentaa oikeutensa pääkäyttäjäksi. Ongelmaa voi käyttää hyväkseen kuka tahansa käyttäjä riippumatta sudo-oikeuksista tai sudoer-ohjelman käyttäjäkohtaisista asetuksista. Voit estää ongelman varmistamalla, että tiedostossa /etc/sudoers ei ole "pwfeedback"-asetusta, ja tarvittaessa poistaa se käytöstä ("Oletukset !pwfeedback"). Voit tarkistaa, onko ongelmassa, suorittamalla koodin:

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

Lähde: opennet.ru

Lisää kommentti