Vulnerabilitat crítica d'Exim revelada

publicat llançament correctiu Exim 4.92.2 amb l'eliminació de crítics vulnerabilitats (CVE-2019-15846), que en la configuració predeterminada pot provocar l'execució de codi remota per part d'un atacant amb privilegis de root. El problema només apareix quan el suport TLS està habilitat i s'aprofita passant un certificat de client especialment dissenyat o un valor modificat a SNI. Vulnerabilitat identificat per Qualys.

problema present al controlador per escapar caràcters especials a la cadena (string_interpretat_escape() de cadena.c) i és causada perquè el caràcter '\' al final de la cadena s'interpreta abans del caràcter nul ('\0') i s'escapa. Quan s'escapa, la seqüència '\' i el codi de final de línia nul següent es tracten com un sol caràcter i el punter es desplaça a les dades fora de la línia, que es tracta com una continuació de la línia.

El codi que crida a string_interpret_escape() assigna un buffer per al drenatge en funció de la mida real i el punter exposat acaba en una àrea fora dels límits del buffer. En conseqüència, quan s'intenta processar una cadena d'entrada, es produeix una situació en llegir dades d'una àrea fora dels límits de la memòria intermèdia assignada, i un intent d'escriure una cadena sense escapar pot conduir a escriure més enllà dels límits de la memòria intermèdia.

En la configuració predeterminada, la vulnerabilitat es pot explotar enviant dades especialment dissenyades a SNI quan s'estableix una connexió segura al servidor. El problema també es pot aprofitar modificant els valors de peerdn en configuracions configurades per a l'autenticació de certificats de client o quan s'importen certificats. L'atac mitjançant SNI i peerdn és possible a partir del llançament Exim 4.80, en què es va utilitzar la funció string_unprinting() per anul·lar la impressió dels continguts peerdn i SNI.

S'ha preparat un prototip d'explotació per a un atac mitjançant SNI, que s'executa en arquitectures i386 i amd64 en sistemes Linux amb Glibc. L'explotació utilitza la superposició de dades a l'àrea d'emmagatzematge dinàmic, la qual cosa fa que sobreescrigui la memòria on s'emmagatzema el nom del fitxer de registre. El nom del fitxer es substitueix per "/../../../../../../../../etc/passwd". A continuació, se sobreescriu la variable amb l'adreça del remitent, que es desa primer al registre, que permet afegir un nou usuari al sistema.

Actualitzacions de paquets amb correccions de vulnerabilitats publicades per distribucions Debian, Ubuntu, Fedora, SUSE/openSUSE и FreeBSD. Problema RHEL i CentOS no susceptibles, ja que Exim no s'inclou al seu repositori de paquets habitual (en EPEL обновление ja format, però de moment no col·locat a un repositori públic). Al codi Exim, el problema es soluciona amb una sola línia pegat, que desactiva l'efecte d'escapament de la barra invertida si es troba al final de la línia.

Com a solució alternativa per bloquejar la vulnerabilitat, podeu desactivar el suport TLS o afegir-lo
Secció ACL "acl_smtp_mail":

condició denegada = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
condició denegada = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Font: opennet.ru

Afegeix comentari