Qualys Company
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ä
Ongelma johtuu epätäydellisestä poistamisesta
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