ProHoster > Blog > Amministrazione > Patched Exim - patch di novu. Fresh Remote Command Execution in Exim 4.92 in una sola dumanda
Patched Exim - patch di novu. Fresh Remote Command Execution in Exim 4.92 in una sola dumanda
Più recentemente, à u principiu di l'estate, ci sò state richieste generalizate per l'aghjurnamentu di Exim à a versione 4.92 per via di a vulnerabilità CVE-2019-10149 (Aghjurnate urgentemente Exim à 4.92 - ci hè una infezione attiva / Sudo Null IT News). È pocu tempu hè statu chì u malware Sustes hà decisu di prufittà di sta vulnerabilità.
Avà tutti quelli chì anu aghjurnatu urgentemente ponu "allegriate" di novu: u 21 di lugliu di u 2019, u ricercatore Zerons hà scupertu una vulnerabilità critica in Exim Mail Transfer Agent (MTA) quandu si usa TLS per versioni da 4.80 à 4.92.1 inclusive, chì permette à distanza eseguisce codice cù diritti privilegiati (CVE-2019-15846).
Vulnerabilità
A vulnerabilità hè presente quandu si usanu e librerie GnuTLS è OpenSSL quandu si stabilisce una cunnessione TLS sicura.
Sicondu u sviluppatore Heiko Schlittermann, u schedariu di cunfigurazione in Exim ùn usa micca TLS per automaticamente, ma assai distribuzioni creanu i certificati necessarii durante a stallazione è permettenu una cunnessione sicura. Ancu e versioni più recenti di Exim installate l'opzione tls_advertise_hosts=* è generà i certificati necessarii.
dipende da a cunfigurazione. A maiò parte di e distribuzioni l'attivanu per automaticamente, ma Exim hà bisognu di un certificatu + chjave per travaglià cum'è un servitore TLS. Probabilmente Distros creanu un Cert durante a stallazione. L'Exims più recenti anu l'opzione tls_advertise_hosts predeterminata à "*" è creanu un certificatu autofirmatu, se nimu hè furnitu.
A vulnerabilità stessa si trova in un trattamentu incorrectu di SNI (Server Name Indication, una tecnulugia introdutta in u 2003 in RFC 3546 per un cliente per dumandà u certificatu currettu per un nome di duminiu, Distribuzione di u standard TLS SNI / Blog WEBO Group / Sudo Null IT News) durante una stretta di mano TLS. Un attaccu solu hà bisognu di mandà un SNI chì finisce cù un backslash ("") è un caratteru nulu (" ").
I ricercatori di Qualys anu scupertu un bug in a funzione string_printing(tls_in.sni), chì implica una scappata incorrecta di "". In u risultatu, u backslash hè scrittu senza escape à u schedariu di l'intestazione di u spool di stampa. Stu schedariu hè poi lettu cù diritti privilegiati da a funzione spool_read_header() , chì porta à un overflow di heap.
Hè da nutà chì à u mumentu, i sviluppatori Exim anu creatu un PoC di vulnerabilità cù l'esekzione di cumandamenti in un servitore vulnerabile remoto, ma ùn hè ancu dispunibule publicamente. A causa di a facilità di sfruttamentu di u bug, hè solu questione di tempu, è abbastanza cortu.
Un studiu più detallatu da Qualys pò esse truvatu ccà.
Utilizà SNI in TLS
Numero di servitori publichi potenzialmente vulnerabili
Sicondu statistiche da un grande fornitore di hosting E-Soft Inc da u 1 di settembre, nantu à i servitori affittuati, a versione 4.92 hè aduprata in più di 70% di l'ospiti.
Version
Numero di servitori
centu
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%
Altre versioni
25568
5.04%
Dati finanziari di E-Soft Inc
Se utilizate un mutore di ricerca shōdan, dopu da 5,250,000 in a basa di dati di u servitore:
più di 74,000 cù 4.92.1 (circa 25,000 cù SSL / TLS).
Cusì, i servitori Exim potenzialmente vulnerabili publicamente cunnisciuti è accessibili 1.5M.
Cerca i servitori Exim in Shodan
prutezzione
L'opzione più simplice, ma micca cunsigliatu, hè di ùn aduprà TLS, chì hà da risultatu in i missaghji di email chì sò trasmessi in u chjaru.
Per evità a sfruttamentu di a vulnerabilità, saria più preferibile aghjurnà a versione Exim Internet Mailer 4.92.2.
Se hè impussibile aghjurnà o installà una versione patched, pudete stabilisce un ACL in a cunfigurazione Exim per l'opzione acl_smtp_mail cù e seguenti regule:
# 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}}}}