Se ha corregido una grave vulnerabilidad en Exim que podría permitir a
un atacante ejecutar código arbitrario en el sistema afectado.
Exim es un servidor de correo electrónico de código abierto muy popular
en sistemas Unix. Fue desarrollado en 1995 por Philip Hazel en la Universidad
de Cambridge. Actualmente Exim es el MTA por defecto de Debian y de otras
distribuciones de GNU/Linux.
La vulnerabilidad, bautizada con CVE-2017-16943 fue anunciada en el bug
tracker de Exim de forma pública, lo que no dejó a los desarrolladores mucho
margen de reacción. A pesar de eso, a las pocas horas fue publicado un parche
provisional que solucionaba la vulnerabilidad.
El fallo se debe a un uso de memoria después de liberarla en la función
'receive_getc' de la librería 'receive.c'. Un atacante remoto podría explotar
esta vulnerabilidad mediante una secuencia de comandos BDAT y provocar una
denegación de servicio o ejecutar código arbitrario en el servidor SMTP.
En el reporte se adjunta una prueba de concepto que provoca una
violación de acceso que interrumpe la ejecución del programa:
Poco después se anunció otra vulnerabilidad bautizada con CVE-2017-16944
que afectaba a la función 'receive_msg' de la misma librería 'receive.c'. El
fallo permitiría a un atacante remoto mediante comandos BDAT, causar un bucle
infinito y agotar la memoria de pila. Provocando una denegación de servicio en
el servidor SMTP.
Estas vulnerabilidades ya han sido corregidas en la versión de Exim
4.90, por lo que se recomienda actualizar cuanto antes.
Más información:
- Bug 2199 - Exim use-after-free vulnerability while reading mail header https://bugs.exim.org/show_bug.cgi?id=2199
- Bug 2201 - Exim handles BDAT data incorrectly and leads to crash https://bugs.exim.org/show_bug.cgi?id=2201
- CVE-2017-16943 Detail https://nvd.nist.gov/vuln/detail/CVE-2017-16943
- CVE-2017-16944 Detail https://nvd.nist.gov/vuln/detail/CVE-2017-16944