Rivelati i dettagli della vulnerabilità critica in Exim

pubblicato rilascio correttivo Esame 4.92.2 con l'eliminazione delle criticità vulnerabilità (CVE-2019-15846), che nella configurazione predefinita può portare all'esecuzione di codice remoto da parte di un utente malintenzionato con privilegi di root. Il problema si presenta solo quando il supporto TLS è abilitato e viene sfruttato passando a SNI un certificato client appositamente progettato o un valore modificato. Vulnerabilità identificato di Qualys.

Problema presente nel gestore per l'escape dei caratteri speciali nella stringa (string_interpret_escape() da string.c) ed è causato dal carattere '\' alla fine della stringa che viene interpretato prima del carattere nullo ('\0') e ne viene eseguito l'escape. Durante l'escape, la sequenza '\' e il seguente codice di fine riga null vengono trattati come un singolo carattere e il puntatore viene spostato sui dati all'esterno della riga, che viene trattata come una continuazione della riga.

Il codice che chiama string_interpret_escape() alloca un buffer per lo scarico in base alla dimensione effettiva e il puntatore esposto finisce in un'area esterna ai limiti del buffer. Di conseguenza, quando si tenta di elaborare una stringa di input, si verifica una situazione in cui si leggono i dati da un'area al di fuori dei limiti del buffer allocato e un tentativo di scrivere una stringa senza caratteri di escape può portare alla scrittura oltre i limiti del buffer.

Nella configurazione predefinita, la vulnerabilità può essere sfruttata inviando dati appositamente progettati a SNI quando si stabilisce una connessione sicura al server. Il problema può essere sfruttato anche modificando i valori peerdn nelle configurazioni configurate per l'autenticazione del certificato client o durante l'importazione di certificati. L'attacco tramite SNI e peerdn è possibile a partire dal rilascio Esame 4.80, in cui la funzione string_unprinting() è stata utilizzata per destampare i contenuti peerdn e SNI.

È stato preparato un prototipo di exploit per un attacco tramite SNI, in esecuzione su architetture i386 e amd64 su sistemi Linux con Glibc. L'exploit utilizza la sovrapposizione dei dati nell'area heap, sovrascrivendo la memoria in cui è archiviato il nome del file di registro. Il nome del file viene sostituito con "/../../../../../../../../etc/passwd". Successivamente, viene sovrascritta la variabile con l'indirizzo del mittente, che viene prima salvata nel registro, che consente di aggiungere un nuovo utente al sistema.

Aggiornamenti dei pacchetti con correzioni di vulnerabilità rilasciati dalle distribuzioni Debian, Ubuntu, Fedora, SUSE / openSUSE и FreeBSD. Problema RHEL e CentOS non suscettibile, poiché Exim non è incluso nel loro normale repository di pacchetti (in EPEL aggiornare già formatoma per ora non posizionato in un archivio pubblico). Nel codice Exim il problema viene risolto con una riga toppa, che disabilita l'effetto di escape della barra rovesciata se si trova alla fine della riga.

Come soluzione alternativa per bloccare la vulnerabilità, è possibile disabilitare il supporto TLS o aggiungere
Sezione ACL “acl_smtp_mail”:

condizione di negazione = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
condizione di rifiuto = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Fonte: opennet.ru

Aggiungi un commento