Vulnerabilidad en Exim BDAT expone a GnuTLS a ejecución de código
Publicado el
Nueva vulnerabilidad en Exim BDAT
Exim ha publicado actualizaciones de seguridad para enfrentar una grave vulnerabilidad que afecta a ciertas configuraciones del software, permitiendo la corrupción de memoria y la posible ejecución de código. Exim, un Agente de Transferencia de Correo (MTA) de código abierto, es utilizado en sistemas similares a Unix para recibir, enrutar y entregar correos electrónicos.
La vulnerabilidad, registrada como CVE-2026-45185 y conocida como Dead.Letter, se describe como un error de uso después de la liberación en el análisis del cuerpo del mensaje BDAT durante una conexión TLS gestionada por GnuTLS. Según Exim, este problema se activa cuando un cliente envía una alerta de cierre TLS antes de completar la transferencia del cuerpo, y luego envía un byte final en texto claro en la misma conexión TCP. Esta secuencia puede provocar que Exim escriba en un buffer de memoria que ya ha sido liberado, lo que lleva a una corrupción del heap.
Un atacante solo necesita establecer una conexión TLS y utilizar la extensión SMTP CHUNKING (BDAT). La vulnerabilidad afecta a todas las versiones de Exim desde la 4.97 hasta la 4.99.2, pero solo impacta a las compilaciones que utilizan USE_GNUTLS=yes, lo que significa que las versiones que dependen de otras bibliotecas TLS, como OpenSSL, no están afectadas.
Federico Kirschbaum, responsable del Security Lab en XBOW, una plataforma autónoma de pruebas de ciberseguridad, fue quien descubrió y reportó este fallo el 1 de mayo de 2026. Kirschbaum explicó que durante el cierre de TLS, Exim libera su buffer de transferencia TLS, pero un envoltorio de recepción BDAT anidado puede seguir procesando bytes entrantes, lo que puede llevar a que se llame a ungetc() y se escriba un solo carácter ( ) en la región liberada. Esta escritura de un byte afecta a los metadatos del asignador de Exim, corrompiendo su forma interna, y el exploit aprovecha esta corrupción para obtener más privilegios.
XBOW ha calificado la vulnerabilidad como uno de los errores más graves descubiertos en Exim hasta la fecha, destacando que activarla requiere casi ninguna configuración especial en el servidor. El problema ha sido solucionado en la versión 4.99.3, y se aconseja a todos los usuarios que actualicen lo antes posible, ya que no existen mitigaciones que resuelvan la vulnerabilidad.
Exim ha señalado que la solución asegura que la pila de procesamiento de entradas se reinicie de manera limpia cuando se recibe una notificación de cierre TLS durante una transferencia BDAT activa, evitando el uso de punteros obsoletos.
No es la primera vez que se divulgan errores críticos de uso después de la liberación en Exim. En 2017, Exim corrigió una vulnerabilidad similar en el demonio SMTP (CVE-2017-16943, con un puntaje CVSS de 9.8) que podía ser explotada por atacantes no autenticados para lograr ejecución remota de código mediante comandos BDAT especialmente diseñados, lo que les permitía tomar control del servidor de correo.