Eximin kriittisen haavoittuvuuden tiedot paljastettiin

julkaistu korjaava vapautus Exim 4.92.2 poistamalla kriittiset haavoittuvuuksia (CVE-2019-15846), joka oletuskokoonpanossa voi johtaa koodin etäsuorittamiseen pääkäyttäjän oikeuksin omaavan hyökkääjän toimesta. Ongelma ilmenee vain, kun TLS-tuki on käytössä ja sitä hyödynnetään välittämällä erityisesti suunniteltu asiakassertifikaatti tai muutettu arvo SNI:lle. Haavoittuvuus tunnistettu kirjoittanut Qualys.

ongelma esittää käsittelijässä merkkijonon erikoismerkkien välttämiseksi (string_interpret_escape() merkkijonosta.c) ja johtuu siitä, että merkkijonon lopussa oleva \-merkki tulkitaan ennen nollamerkkiä ('\0') ja pakottaa sen. Escape-koodia '\' ja sitä seuraavaa tyhjää rivin loppukoodia käsitellään yhtenä merkkinä ja osoitin siirretään rivin ulkopuoliseen dataan, jota käsitellään rivin jatkona.

Koodi, joka kutsuu string_interpret_escape(), varaa nielulle puskurin todellisen koon perusteella, ja paljastettu osoitin päätyy puskurin rajojen ulkopuolelle. Vastaavasti yritettäessä prosessoida syötemerkkijonoa syntyy tilanne, kun dataa luetaan varatun puskurin rajojen ulkopuolelta, ja yritys kirjoittaa merkkijonoa, jota ei ole pakotettu, voi johtaa puskurin rajojen ulkopuolelle kirjoittamiseen.

Oletuskokoonpanossa haavoittuvuutta voidaan hyödyntää lähettämällä erityisesti suunniteltuja tietoja SNI:lle suojattua yhteyttä muodostettaessa palvelimeen. Ongelmaa voidaan myös hyödyntää muokkaamalla peerdn-arvoja asiakkaan varmenteen todennusta varten määritetyissä konfiguraatioissa tai varmenteita tuottaessa. Hyökkäys SNI:n ja peerdn:n kautta on mahdollista julkaisusta alkaen Exim 4.80, jossa string_unprinting()-funktiota käytettiin peerdn- ja SNI-sisällön tulostuksen poistamiseen.

SNI:n kautta tapahtuvaa hyökkäystä varten on valmisteltu hyväksikäyttöprototyyppi, joka toimii i386- ja amd64-arkkitehtuureissa Linux-järjestelmissä, joissa on Glibc. Hyödyntäminen käyttää tietopeittokuvaa kasa-alueella, mikä johtaa muistin päällekirjoittamiseen, johon lokitiedoston nimi on tallennettu. Tiedoston nimi korvataan nimellä "/../../../../../../../../etc/passwd". Seuraavaksi kirjoitetaan lähettäjän osoitteella varustettu muuttuja, joka tallennetaan ensin lokiin, jolloin järjestelmään voidaan lisätä uusi käyttäjä.

Jakelujen julkaisemat haavoittuvuuskorjaukset sisältävät pakettipäivitykset Debian, Ubuntu, Fedora, SUSE / openSUSE и FreeBSD. RHEL- ja CentOS-ongelma ei ole herkkä, koska Exim ei sisälly heidän tavalliseen pakettivarastoon (in LÄMMIN обновление jo muodostettu, mutta toistaiseksi ei ole sijoitettu julkiseen arkistoon). Exim-koodissa ongelma on korjattu yksilinjaisella laastari, joka poistaa kenoviivan poistovaikutuksen käytöstä, jos se on rivin lopussa.

Kiertokeinona haavoittuvuuden estämiseksi voit poistaa TLS-tuen käytöstä tai lisätä
ACL-osio "acl_smtp_mail":

kieltää ehto = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
kieltää ehto = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Lähde: opennet.ru

Lisää kommentti