Popravi Exim – popravite še enkrat. Nova daljinska izvajalska napaka v Exim 4.92 v enem zahtevku.

Popravi Exim – popravite še enkrat. Nova daljinska izvajalska napaka v Exim 4.92 v enem zahtevku.

Nedavno, na početku ljeta, pojavili su se masovni pozivi na ažuriranje Exim-a na verziju 4.92 zbog ranjivosti CVE-2019-10149 (Hitno ažurirajte Exim na 4.92 — aktivno širenje infekcije / Habr). 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 (CVE-2019-15846).

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, Širenje standarda TLS SNI / Blog kompanije WEBO Group / Habr) 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 ovde.

Popravi Exim – popravite še enkrat. Nova daljinska izvajalska napaka v Exim 4.92 v enem zahtevku.

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 Shodan, 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.

Popravi Exim – popravite še enkrat. Nova daljinska izvajalska napaka v Exim 4.92 v enem zahtevku.

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 Exim Internet Mailer 4.92.2.
  • 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

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster