OpenSMTPD:n haavoittuvuudet, jotka mahdollistavat etä- ja paikallisen pääkäyttäjän käytön

Qualys Company paljastettiin toinen kriittinen etähaavoittuvuus (CVE-2020-8794) sähköpostipalvelimessa AvaaSMTPD, jonka on kehittänyt OpenBSD-projekti. Kuten tammikuun lopussa tunnistettu haavoittuvuus, uusi ongelma mahdollistaa mielivaltaisten komentotulkkikomentojen etäsuorittamisen palvelimella, jolla on pääkäyttäjän oikeudet. Haavoittuvuus eliminoitu asiassa OpenSMTPD 6.6.4p1.

Ongelma johtuu virheestä koodissa, joka toimittaa postin etäpostipalvelimelle (ei koodissa, joka käsittelee saapuvia yhteyksiä). Hyökkäys on mahdollista sekä asiakas- että palvelinpuolella. Asiakaspuolella hyökkäys on mahdollinen OpenSMTPD:n oletuskokoonpanossa, jossa OpenSMTPD hyväksyy pyynnöt vain sisäisessä verkkorajapinnassa (localhost) ja lähettää sähköpostiviestejä ulkoisille palvelimille. Haavoittuvuuden hyödyntämiseksi riittää, että OpenSMTPD muodostaa kirjeen toimituksen aikana istunnon hyökkääjän hallitseman sähköpostipalvelimen kanssa tai että hyökkääjä voi kiilautua asiakasyhteyteen (MITM tai uudelleenohjaus DNS- tai BGP-hyökkäysten aikana ).

Palvelinpuolen hyökkäystä varten OpenSMTPD on määritettävä vastaanottamaan ulkoisia verkkopyyntöjä muilta sähköpostipalvelimilta tai palvelemaan kolmannen osapuolen palveluita, joiden avulla voit lähettää pyynnön mielivaltaiseen sähköpostiin (esimerkiksi osoitteenvahvistuslomakkeet verkkosivustoilla). Hyökkääjä voi esimerkiksi muodostaa yhteyden OpenSMTPD-palvelimeen ja lähettää väärän kirjeen (olemattomalle käyttäjälle), mikä johtaa vastaukseen, joka lähettää virhekoodin sisältävän kirjeen (bounce) hyökkääjän palvelimelle. Hyökkääjä voi hyödyntää haavoittuvuutta, kun OpenSMTPD muodostaa yhteyden toimittaakseen ilmoituksen hyökkääjän palvelimelle. Hyökkäyksen aikana syötetyt komentotulkkikomennot sijoitetaan tiedostoon, joka suoritetaan pääkäyttäjän oikeuksin, kun OpenSMTPD käynnistetään uudelleen, joten hyökkääjän on odotettava OpenSMTPD:n uudelleenkäynnistystä tai aloitettava OpenSMTPD:n kaatuminen hyökkäyksen suorittamiseksi loppuun.

Ongelma esiintyy mta_io()-funktiossa koodissa, joka jäsentää etäpalvelimen yhteyden muodostamisen jälkeen palauttaman monirivisen vastauksen (esimerkiksi "250-ENHANCEDSTATUSCODES" ja "250 HELP"). OpenSMTPD laskee, että ensimmäinen rivi sisältää kolminumeroisen luvun ja tekstin erotettuna "-"-merkillä, ja toisella rivillä kolminumeroinen numero ja välilyönnillä erotettu teksti. Jos kolminumeroisen luvun jälkeen ei ole välilyöntiä ja tekstiä toisella rivillä, tekstin määrittämiseen käytetty osoitin asetetaan \0-merkkiä seuraavaan tavuun ja loppua seuraava data yritetään kopioida. linja puskuriin.

OpenBSD-projektin pyynnöstä haavoittuvuuden hyödyntämistä koskevien tietojen julkaisemista on lykätty helmikuun 26. päivään, jotta käyttäjät voivat päivittää järjestelmiään. Ongelma on ollut koodikannassa joulukuusta 2015 lähtien, mutta hyväksikäyttö ennen koodin suorittamista pääkäyttäjän oikeuksilla on ollut mahdollista toukokuusta 2018 lähtien. Tutkijat valmistivat hyväksikäytöstä toimivan prototyypin, jota testattiin onnistuneesti OpenSMTPD-versioissa OpenBSD 6.6:lle, OpenBSD 5.9:lle, Debian 10:lle, Debian 11:lle (testaus) ja Fedora 31:lle.

Myös OpenSMTPD:ssä tunnistettu Toinen haavoittuvuus (CVE-2020-8793), jonka avulla paikallinen käyttäjä voi lukea minkä tahansa järjestelmässä olevan tiedoston ensimmäisen rivin. Voit esimerkiksi lukea tiedoston /etc/master.passwd ensimmäisen rivin, joka sisältää pääkäyttäjän salasanan hajautusarvon. Haavoittuvuuden avulla voit myös lukea toisen käyttäjän omistaman tiedoston koko sisällön, jos tämä tiedosto sijaitsee samassa tiedostojärjestelmässä kuin /var/spool/smtpd/-hakemisto. Ongelmaa ei voida hyödyntää monissa Linux-jakeluissa, joissa /proc/sys/fs/protected_hardlinks arvoksi on asetettu 1.

Ongelma johtuu epätäydellisestä poistamisesta ongelmia, joka todettiin Qualysin vuonna 2015 suorittaman tarkastuksen aikana. Hyökkääjä voi suorittaa koodinsa "_smtpq"-ryhmän oikeuksilla asettamalla "PATH=."-muuttujan. ja skriptin, jonka nimi on makemap, asettaminen nykyiseen hakemistoon (smtpctl-apuohjelma suorittaa makemapin ilman polkua nimenomaisesti). Päästyessään "_smtpq"-ryhmään hyökkääjä voi aiheuttaa kilpailutilanteen (luoda suuren tiedoston offline-hakemistoon ja lähettää SIGSTOP-signaalin) ja ennen kuin käsittely on valmis, korvata offline-hakemistossa olevan tiedoston kovalla. symbolilinkki, joka osoittaa kohdetiedostoon, jonka sisältö on luettava.

On huomionarvoista, että Fedora 31:ssä haavoittuvuus antaa sinun saada välittömästi juuriryhmän oikeudet, koska smtpctl-prosessi on varustettu setgid root -lipulla setgid smtpq -lipun sijaan. Päästämällä juuriryhmään voit korvata /var/lib/sss/mc/passwd sisällön ja saada täyden pääkäyttäjän oikeudet järjestelmään.

Lähde: opennet.ru

Lisää kommentti