
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 (). 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 ().
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, ) 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ť .

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

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