Problema
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
È 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
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