Kriitilise haavatavuse üksikasjad Eximis on avalikustatud

Avaldatud korrektsiooniväljaanne Exim 4.92.2 hädaga kriitiline haavatavusest (CVE-2019-15846), mis vaikekonfiguratsioonis võib viia kaugkäivitatud koodi täideviimiseni ründaja poolt root õigustega. Probleem ilmneb ainult TLS toe lubamisel ja seda ärakasutatakse spetsiaalselt vormindatud kliendisertifikaadi või muudetud SNI väärtuse edastamise kaudu. Haavatavus tuvastatud ettevõtte Qualys.

Probleem on olemas eraldi sümbolite eristamise töötlejas (string_interpret_escape() failist string.c) ja see on põhjustatud sellest, et sümbol ‘\’ rea lõpus tõlgendatakse enne nullisümbolit (‘\0’) ja see varjab seda. Kui varjatakse, töödeldakse järjekord ‘\’ ja sellele järgnev nullkood rea lõpus kui ühte sümbolit ning näitaja nihkub andmete juurde, mis on rea piiridest väljas, mis töödeldakse kui selle jätk.

Kood, mis kutsub esile string_interpret_escape(), eraldab puhvri voolu põhjal tegelikku suurust, ja määratud näidik satub puhvri piiridest väljapoole. Seetõttu, kui sisendstringi töödeldakse, tekib olukord, kus andmeid loetakse eraldatud puhvri piiridest väljapoole, ja dekodeeritud stringi kirjutamise katsed võivad viia kirjutamiseni puhvri üle.

Vaikimisi seadistustes saab haavatavust ära kasutada, edastades spetsiaalselt vormindatud andmeid SNI kaudu, kui luuakse turvaline ühendus serveriga. Probleemi saab samuti ära kasutada, muutes peerdn väärtusi konfiguratsioonides, mis on seadistatud kliendi sertifikaadi autentimiseks, või sertifikaatide importimisel. Rünnak SNI ja peerdn kaudu on võimalik alates väljalaskest Exim 4.80, kus funktsioon string_unprinting() kasutati peerdn ja SNI sisu dekodeerimiseks.

SNI rünnaku jaoks on valmis prototüüp eksploit, mis töötab i386 ja amd64 arhitektuuridel Linuxi süsteemides Glibc-ga. Eksploit kasutab andmete kattumist mälu kuhja piirkonnas, mis põhjustab mälu üle kirjutamise, kus hoitakse logifaili nime. Logifaili nimi asendatakse «/../../../../../../../../etc/passwd». Edasi kirjutatakse saatja aadressi muutuja, mis salvestatakse esmakordselt logisse, võimaldades lisada süsteemi uue kasutaja.

Pakettide uuendused, mis lahendavad haavatavuse, on välja andnud distributsioonid Debian, Ubuntu, Fedora, SUSE/openSUSE ja FreeBSD. RHEL ja CentOS probleemile ei ole haavatavad, kuna Exim ei kuulu nende ametlikku paketirepositooriumi ( EPEL uuendus juba on loodud, kuid hetkel ei ole paigutatud avalikku repositooriumisse). Eximi koodis lahendatakse probleem ühe rea patch, mis keelab tagurpidi kaldkriipsu põhimõtte, kui see on rea lõpus.

Käitumise ümberminekuks haavatavuse blokeerimiseks võib välja lülitada TLS toe või lisada
ACL sektsiooni «acl_smtp_mail»:

deny condition = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
deny condition = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Allikas: opennet.ru

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