Nú geta allir þeir sem brýnt uppfærðu „gleðst“ aftur: 21. júlí 2019 uppgötvaði rannsóknarmaðurinn Zerons mikilvægan varnarleysi í Exim Mail Transfer agent (MTA) þegar TLS er notað fyrir útgáfur frá 4.80 4.92.1 upp innifalið, leyfa fjarstýringu keyra kóða með forréttindaréttindum (CVE-2019-15846).
Viðkvæmni
Varnarleysið er til staðar þegar bæði GnuTLS og OpenSSL bókasöfnin eru notuð við að koma á öruggri TLS tengingu.
Samkvæmt verktaki Heiko Schlittermann notar stillingarskráin í Exim ekki TLS sjálfgefið, en margar dreifingar búa til nauðsynleg skilríki meðan á uppsetningu stendur og gera örugga tengingu kleift. Nýrri útgáfur af Exim setja einnig upp möguleikann tls_advertise_hosts=* og búa til nauðsynleg vottorð.
fer eftir uppsetningu. Flestar dreifingar virkja það sjálfgefið, en Exim þarf vottorð+lykil til að virka sem TLS netþjónn. Sennilega búa Distros til vottorð við uppsetningu. Nýrri prófanir eru með tls_advertise_hosts valmöguleikann sem er sjálfgefið „*“ og búa til sjálfundirritað vottorð, ef ekkert er gefið upp.
Varnarleysið sjálft felst í rangri vinnslu á SNI (Server Name Indication, tækni sem kynnt var árið 2003 í RFC 3546 fyrir viðskiptavin til að biðja um rétt vottorð fyrir lén, Dreifing TLS SNI staðalsins / WEBO Group Blog / Sudo Null IT News) meðan á TLS handabandi stendur. Árásarmaður þarf bara að senda SNI sem endar með skástrik ("") og núllstaf (" ").
Vísindamenn frá Qualys hafa uppgötvað villu í string_printing(tls_in.sni) aðgerðinni, sem felur í sér ranga sleppi á „“. Afleiðingin er sú að bakskásturinn er skrifaður ósleppt í hausskrána fyrir prentspólu. Þessi skrá er síðan lesin með forréttindaréttindum með spool_read_header() aðgerðinni, sem leiðir til hrúguflæðis.
Það er athyglisvert að í augnablikinu hafa Exim verktaki búið til PoC af varnarleysi með framkvæmd skipana á ytri viðkvæmum netþjóni, en það er ekki enn aðgengilegt almenningi. Vegna þess hve auðvelt er að nýta villuna er þetta bara spurning um tíma og frekar stutt.
Ef það er ómögulegt að uppfæra eða setja upp pjattaða útgáfu, geturðu stillt ACL í Exim stillingunni fyrir valkostinn acl_smtp_mail með eftirfarandi reglum:
# 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}}}}