Nüüd saavad kõik need, kes kiiresti uuendasid, taas "rõõmustada": 21. juulil 2019 avastas teadlane Zerons kriitilise haavatavuse Exim Mail Transfer agent (MTA), kui kasutate TLS-i versioonide jaoks alates 4.80 4.92.1 üles kaasa arvatud, võimaldades kaugjuhtimist käivitada privilegeeritud õigustega kood (CVE-2019-15846).
Haavatavus
Haavatavus esineb nii GnuTLS-i kui ka OpenSSL-i teekide kasutamisel turvalise TLS-ühenduse loomisel.
Arendaja Heiko Schlittermanni sõnul ei kasuta Eximis olev konfiguratsioonifail vaikimisi TLS-i, kuid paljud distributsioonid loovad installimise käigus vajalikud sertifikaadid ja võimaldavad turvalist ühendust. Selle valiku installivad ka Eximi uuemad versioonid tls_advertise_hosts=* ja genereerida vajalikud sertifikaadid.
oleneb konfiguratsioonist. Enamik distrosid lubab selle vaikimisi, kuid Exim vajab TLS-serverina töötamiseks sertifikaati + võtit. Tõenäoliselt loovad Distrod seadistamise ajal sertifikaadi. Uuemates Eximsis on suvand tls_advertise_hosts vaikimisi "*" ja loob ise allkirjastatud sertifikaadi, kui seda pole ette nähtud.
Haavatavus ise seisneb SNI (Server Name Indication, 2003. aastal RFC 3546-s kasutusele võetud tehnoloogia, mille abil klient taotleb domeeninime jaoks õiget sertifikaati) vales töötlemises. TLS SNI standardi levitamine / WEBO Groupi ajaveeb / Sudo Null IT-uudised) TLS-i käepigistuse ajal. Ründaja peab lihtsalt saatma SNI, mis lõpeb kaldkriipsuga ("") ja nullmärgiga (" ").
Qualysi teadlased avastasid funktsioonis string_printing(tls_in.sni) vea, mis hõlmab "" vale põgenemist. Selle tulemusel kirjutatakse kaldkriips prindipooli päise faili ilma paokoodita. Seejärel loeb funktsioon spool_read_header() seda faili privilegeeritud õigustega, mis viib kuhja ülevooluni.
Väärib märkimist, et hetkel on Eximi arendajad loonud haavatavuste PoC kaugserveris käskude täitmisega, kuid see pole veel avalikult saadaval. Vea hõlpsa kasutamise tõttu on see vaid aja küsimus ja üsna lühike.
Kui paigatud versiooni värskendamine või installimine on võimatu, saate selle valiku jaoks Eximi konfiguratsioonis määrata ACL-i acl_smtp_mail järgmiste reeglitega:
# to be prepended to your mail acl (the ACL referenced
# by the acl_smtp_mail main config option)
deny condition = ${if eq{}{${substr{-1}{1}{$tls_in_sni}}}}
deny condition = ${if eq{}{${substr{-1}{1}{$tls_in_peerdn}}}}