Patche Exim - aplikujte ho ešte raz. Nová zraniteľnosť vzdialeného vykonávania príkazov v Exim 4.92 na jeden požiadavok

Patche Exim - aplikujte ho ešte raz. Nová zraniteľnosť vzdialeného vykonávania príkazov v Exim 4.92 na jeden požiadavok

Len nedávno, na začiatku leta, sa objavili hromadné výzvy na aktualizáciu Exim na verziu 4.92 kvôli zraniteľnosti CVE-2019-10149 (Urgentne aktualizujte exim na 4.92 – prebieha aktívne nakazenie / Habr). A nedávno sa zistilo, že škodlivý Sustes sa rozhodol využiť túto zraniteľnosť.

Teraz sa všetci, ktorí sa núdzovo aktualizovali, môžu opäť „tešiť“: 21. júla 2019 výskumník Zerons objavil kritickú zraniteľnosť v Exim Mail Transfer agent (MTA) pri používaní TLS pre verzie od 4.80 do 4.92.1 vrátane, čo umožňuje vzdialene vykonávať kód s privilegovanými právami (CVE-2019-15846).

Zraniteľnosť

Zraniteľnosť sa vyskytuje pri používaní knižníc ako GnuTLS, tak aj OpenSSL pri nastavení zabezpečeného TLS spojenia.

Podľa slov vývojára Heika Schlittermanna sú konfiguračné súbory v Exim predvolene nastavené tak, aby nepoužívali TLS, avšak mnohé distribúcie počas inštalácie vytvárajú potrebné certifikáty a zahŕňajú zabezpečené spojenie. Tiež novšie verzie Exim nastavujú možnosť tls_advertise_hosts=* a generujú potrebné certifikáty.

závisí to od konfigurácie. Väčšina distribúcií to predvolene aktivuje, ale Exim potrebujú certifikát + kľúč, aby fungovali ako TLS server. Distribúcie pravdepodobne vytvárajú certifikát počas nastavenia. Novšie verzie Exim majú možnosť tls_advertise_hosts predvolene nastavenú na „*“ a vytvárajú samostatne podpísaný certifikát, ak nie je poskytnutý.

Samotná zraniteľnosť spočíva v nesprávnom spracovaní SNI (Server Name Indication, technológia zavedená v roku 2003 v RFC 3546 na požiadanie klienta o správny certifikát pre doménové meno, Šírenie štandardu TLS SNI / Blog spoločnosti WEBO Group / Habr) počas TLS handshake. Útočníkovi stačí zaslať SNI končiaci spätným lomítkom („") a nulovým symbolom (" ").

Výskumníci z firmy Qualys objavili chybu vo funkcii string_printing(tls_in.sni), ktorá spočíva v nesprávnom escapovaní „\. V dôsledku toho dochádza k zapisovaniu spätného lomítka do neescapovanej podoby do súboru hlavičiek print spool. Následne je tento súbor s privilegovanými právami čítaný funkciou spool_read_header(), čo vedie k pretečeniu haldy (heap overflow).

Je potrebné poznamenať, že v súčasnosti vývojári Exim vytvorili PoC zraniteľnosti s vykonaním príkazov na vzdialenom zraniteľnom serveri, ale v verejnom prístupe zatiaľ nie je. Vzhľadom na jednoduchosť využitia chyby je to len otázka času, a to dosť krátkeho.

S podrobnejším výskumom spoločnosti Qualys sa môžete oboznámiť tu.

Patche Exim - aplikujte ho ešte raz. Nová zraniteľnosť vzdialeného vykonávania príkazov v Exim 4.92 na jeden požiadavok

Používanie SNI v TLS

Počet potenciálne zraniteľných verejných serverov

Podľa štatistík veľkého poskytovateľa hostingu E-Soft Inc k 1. septembru sa na prenajatých serveroch verzia 4.92 používa na viac ako 70 % hostov.

Verzia
Počet serverov
Percento

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%

Iné verzie
25568
5.04%

Štatistika spoločnosti E-Soft Inc

Ak sa obrátime na vyhľadávač Shodan, z 5 250 000 v databáze serverov:

  • približne 3 500 000 používa Exim 4.92 (asi 1 380 000 s použitím SSL/TLS);
  • viac ako 74 000 používa 4.92.1 (asi 25 000 s použitím SSL/TLS).

Takže verejne známych a dostupných potenciálne zraniteľných serverov Exim je približne 1.5 milióna.

Patche Exim - aplikujte ho ešte raz. Nová zraniteľnosť vzdialeného vykonávania príkazov v Exim 4.92 na jeden požiadavok

Hľadanie Exim serverov v Shodan

Ochrana

  • Najjednoduchšia, ale neodporúčaná možnosť — nepoužívať TLS, čo povedie k odoslaniu e-mailov v otvorenej podobe.
  • Preferovateľným spôsobom, ako sa vyhnúť zneužitiu zraniteľnosti, je aktualizovať na verziu Exim Internet Mailer 4.92.2.
  • V prípade nemožnosti aktualizácie alebo inštalácie opravené verzie je možné nastaviť ACL v konfigurácii Exim pre možnosť acl_smtp_mail s nasledujúcimi pravidlami:
    # 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}}}}

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster