
Nedavno, na početku ljeta, pojavili su se masovni pozivi na ažuriranje Exim-a na verziju 4.92 zbog ranjivosti CVE-2019-10149 (). A nedavno je otkriveno da je zlonamerni Sustes odlučio da iskoristi ovu ranjivost.
Sada se svi koji su hitno ažurirali ponovo mogu „radovati”: 21. jula 2019. godine, istraživač Zerons je otkrio kritičnu ranjivost u Exim Mail Transfer agent (MTA) prilikom korišćenja TLS za verzije od 4.80 do 4.92.1 uključivo, koja omogućava daljinsko izvršavanje koda sa privilegovanim pravima ().
Ranljivost
Ranjivost se javlja prilikom korišćenja biblioteka kao što su GnuTLS i OpenSSL prilikom uspostavljanja zaštićenih TLS veza.
Prema rečima programera Heiko Schlittermanna, fajl konfiguracije u Eximu po defaultu ne koristi TLS, međutim mnogi distribucijski paketi tokom instalacije kreiraju neophodne sertifikate i uključuju zaštićenu vezu. Takođe, novije verzije Exima postavljaju opciju tls_advertise_hosts=* i generišu neophodne sertifikate.
zavisi od konfiguracije. Većina distribucija omogućava to po defaultu, ali Exim treba sertifikat i ključ da bi radio kao TLS server. Verovatno distribucije kreiraju sertifikat tokom postavljanja. Noviji Eximi imaju opciju tls_advertise_hosts koja po defaultu ima vrednost «*» i kreiraju self-signed sertifikat, ako nijedan nije obezbeđen.
Sama ranjivost leži u nepravilnoj obradi SNI (Server Name Indication, tehnologija uvedena 2003. godine u RFC 3546 za zahtevanje ispravnog sertifikata za domensko ime od strane klijenta, ) tokom TLS rukovanja. Napadaču je dovoljno da pošalje SNI koji se završava leđnom kosom („”) i nul-karakterom (” “).
Istraživači iz kompanije Qualys otkrili su grešku u funkciji string_printing(tls_in.sni), koja se sastoji u nepravilnom escape-u „”. Kao rezultat, leđa kosa se upisuje u neescape-ovanom obliku u fajl zaglavlja print spool. Zatim ovaj fajl sa privilegovanim pravima se čita pomoću funkcije spool_read_header(), što dovodi do prelivanja heapa (heap overflow).
Treba napomenuti da su programeri Exima trenutno kreirali PoC ranjivosti za izvršavanje komandi na udaljenom ranjivom serveru, ali je trenutno u javnosti nije dostupno. Zbog jednostavnosti eksploatacije greške, to je samo pitanje vremena, i to prilično kratkog.
Sa detaljnijim istraživanjem kompanije Qualys možete se upoznati .

Korišćenje SNI u TLS
Število potencialno ranljivih javnih strežnikov
Po podatkih velikega ponudnika gostovanja E-Soft Inc na 1. september, na najetih strežnikih se različica 4.92 uporablja pri več kot 70 % gostiteljev.
Različica
Število strežnikov
Odstotek
4.92.1
6471
1.28%
4.92
376436
74.22%
4.91
58179
11.47%
4.9
5732
1.13%
4.89
10700
2.11%
4.87
14177
2.80%
4.84
9937
1.96%
Druge različice
25568
5.04%
Statistika podjetja E-Soft Inc
Če se obrnete na iskalnik , od 5.250.000 v bazi strežnikov:
- približno 3.500.000 uporablja Exim 4.92 (približno 1.380.000 z uporabo SSL/TLS);
- več kot 74.000 uporablja 4.92.1 (približno 25.000 z uporabo SSL/TLS).
Tako je javno znanih in dostopnih potencialno ranljivih Exim strežnikov okoli 1,5 milijona.

Iskanje Exim strežnikov v Shodan
Zaščita
- Najpreprostejša, a ne priporoča varianta — ne uporabljati TLS, kar bo povzročilo pošiljanje e-poštnih sporočil v odprti obliki.
- Bolj zaželeno, da se izognejo izkoriščanju ranljivosti, je posodobitev na različico .
- V primeru, da posodobitev ali namestitev popravljenih različic ni mogoča, lahko nastavite ACL v konfiguraciji Exim za možnost acl_smtp_mail z naslednjimi pravili:
# 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}}}}
Izvor: habr.com
