
Nedávno, na začátku léta, se objevily masivní výzvy k aktualizaci Exim na verzi 4.92 kvůli zranitelnosti CVE-2019-10149 (). A nedávno se ukázalo, že malware Sustes se rozhodl využít této zranitelnosti.
Nyní se všichni, kdo urgentně aktualizovali, mohou opět "potěšit": 21. července 2019 výzkumník Zerons objevil kritickou zranitelnost v Exim Mail Transfer agent (MTA) při používání TLS pro verze od 4.80 do 4.92.1 včetně, což umožňuje vzdálené provádění kódu s privilegovanými oprávněními ().
Zranitelnost
Zranitelnost se vyskytuje při použití knihoven GnuTLS i OpenSSL při nastavení zabezpečeného TLS spojení.
Podle slov vývojáře Heika Schlittermanna soubor konfigurace v Exim dle výchozího nastavení nepoužívá TLS, avšak mnoho distribucí při instalaci vytváří potřebné certifikáty a zapíná zabezpečené spojení. Také novější verze Exim nastavují volbu tls_advertise_hosts=* a generují potřebné certifikáty.
závisí na konfiguraci. Většina distribucí ji zapíná ve výchozím nastavení, ale Exim potřebuje certifikát + klíč, aby fungoval jako TLS server. Pravděpodobně distribuce vytvářejí certifikát během nastavení. Novější verze Exim mají výchozí volbu tls_advertise_hosts nastavenou na „*“ a vytvářejí self-signed certifikát, pokud není žádný poskytnut.
Sama zranitelnost spočívá v nesprávném zpracování SNI (Server Name Indication, technologie, zavedená v roce 2003 v RFC 3546 pro požadavek klienta na správný certifikát pro doménové jméno, ) během TLS handshake. Útočníkovi stačí poslat SNI končící zpětným lomítkem („\“) a nulovým znakem (" ").
Výzkumníci z firmy Qualys objevili chybu ve funkci string_printing(tls_in.sni), která spočívá v nesprávném escapování „\“. V důsledku toho se zapisuje zpětné lomítko v neošetřené podobě do souboru hlaviček print spool. Tento soubor s privilegovanými právy se poté čte funkcí spool_read_header(), což vede k přetečení haldy (heap overflow).
Je třeba poznamenat, že v současné době vývojáři Exim vytvořili PoC zranitelnosti s prováděním příkazů na vzdáleném zranitelném serveru, ale v veřejném přístupu zatím chybí. Vzhledem k jednoduchosti exploitace chyby je to pouze otázka času, a to poměrně krátkého.
S podrobnějším výzkumem společnosti Qualys se můžete seznámit .

Použití SNI v TLS
Počet potenciálně zranitelných veřejných serverů
Podle statistik významného poskytovatele hostingu E-Soft Inc k 1. září je na pronajímaných serverech verze 4.92 používána na více než 70 % hostech.
Verze
Počet serverů
Procento
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%
Ostatní verze
25568
5.04%
Statistiky společnosti E-Soft Inc
Pokud se obrátíte na vyhledávač , tak z 5,250,000 v databázi serverů:
- přibližně 3,500,000 používá Exim 4.92 (přibližně 1,380,000 s použitím SSL/TLS);
- více než 74,000 používá 4.92.1 (přibližně 25,000 s použitím SSL/TLS).
Takže celkový počet veřejně známých a dostupných potenciálně zranitelných Exim serverů činí přibližně 1.5 mil..

Vyhledávání Exim serverů v Shodan
Ochrana
- Nejjednodušší, ale nedoporučená varianta — nepoužívat TLS, což povede k přenosu e-mailových zpráv v otevřeném formátu.
- Přednostní variantou pro vyhnutí se zneužití zranitelnosti je aktualizace na verzi .
- Pokud není možné aktualizovat nebo nainstalovat opravenou verzi, lze v konfiguraci Exim nastavit ACL pro možnost acl_smtp_mail s následujícími pravidly:
# 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
