Al servidor de correu Exim
En la configuració per defecte, l'atac es pot dur a terme sense complicacions innecessàries per part d'un usuari local, ja que s'aplica l'ACL "verify = recipient", que realitza comprovacions addicionals per a adreces externes. Es pot produir un atac remot quan es canvia la configuració, com ara actuar com a MX secundari per a un altre domini, eliminar l'ACL "verify=recipient" o determinats canvis a local_part_suffix). També és possible un atac remot si l'atacant és capaç de mantenir oberta la connexió al servidor durant 7 dies (per exemple, enviant un byte per minut per evitar un temps d'espera). Al mateix temps, és possible que hi hagi vectors d'atac més simples per a l'explotació remota del problema.
La vulnerabilitat és causada per una verificació incorrecta de l'adreça del destinatari a la funció deliver_message() definida al fitxer /src/deliver.c. En manipular el format de l'adreça, un atacant pot aconseguir la substitució de les seves dades en els arguments d'una ordre cridada mitjançant la funció execv() amb drets d'arrel. El funcionament no requereix l'ús de tècniques complexes utilitzades per a desbordaments de memòria intermèdia o corrupció de memòria; la simple substitució de caràcters és suficient.
El problema està relacionat amb l'ús de la construcció per a la conversió d'adreces:
delivery_localpart = expand_string(
string_sprintf("${part_local:%s}", nova->adreça));
lliurament_domini = expand_string(
string_sprintf("${domini:%s}", nou->adreça));
La funció expand_string() és un combinador massa complicat, que inclou el reconeixement de l'ordre "${run{command arguments}", que condueix al llançament d'un controlador extern. Així, per atacar dins d'una sessió SMTP, un usuari local només ha d'enviar una ordre com "RCPT TO "nom d'usuari+${executar{...}}@localhost"', on localhost és un dels amfitrions de la llista local_domains, i nom d'usuari és el nom d'un usuari local existent.
Si el servidor funciona com a retransmissió de correu, n'hi ha prou amb enviar de forma remota l'ordre 'RCPT A "${run{...}}@relaydomain.com"', on relaydomain.com és un dels amfitrions que figuren a relay_to_domains. secció de configuració. Com que l'Exim no deixa caure el mode de privilegis per defecte (deliver_drop_privilege = false), les ordres passades mitjançant "${run{...}}" s'executaran com a root.
Cal destacar que la vulnerabilitat era
Actualment només està disponible una correcció per a les versions anteriors que es continuen utilitzant a les distribucions
Font: opennet.ru