Vulnerabilidad en Exim que permite la ejecución remota de código en el servidor

Se ha identificado una vulnerabilidad crítica (CVE-2026-45185) en el servidor de correo Exim, que permite la ejecución remota de código en el servidor. El problema se presenta a partir de la rama Exim 4.97 cuando se compila con la biblioteca GnuTLS («USE_GNUTLS=yes») y se ha corregido en la versión Exim 4.99.3. Las compilaciones con OpenSSL y otras bibliotecas diferentes de GnuTLS no se ven afectadas por esta vulnerabilidad.

El problema es causado por el acceso a memoria previamente liberada (use-after-free) en el backend de GnuTLS y puede ser explotado al interactuar con servidores que soportan la extensión «ESMTP CHUNKING» y el comando BDAT para enviar porciones del cuerpo del mensaje en lugar de enviarlo como un bloque indivisible utilizando el comando DATA. La corrupción del contenido de la memoria del proceso ocurre al iniciar el cliente el cierre anticipado de la sesión TLS mediante el comando close_notify durante la transmisión del cuerpo del mensaje a través de BDAT y luego enviar un solo byte sin cifrar en la misma conexión TCP.

Al recibir el comando close_notify en el backend de GnuTLS se invoca la función de terminación de la sesión TLS, que libera los buffers asociados a la sesión. Debido a un error en el código del backend, a pesar de la liberación del buffer TLS, el manejador BDAT continúa leyendo datos del flujo y llama a la función ungetc(), lo que al enviar datos sin cifrar a continuación, provoca la escritura de un byte en un buffer ya liberado. Este byte daña los metadatos del asignador de memoria en el heap, lo que fue utilizado para realizar experimentos en la creación de un exploit que ejecuta código arbitrario en. servidor.

En primer lugar, los investigadores generaron un exploit parcialmente funcional mediante AI, que permitió ejecutar código, pero solo funcionó en condiciones controladas, en sistemas con la protección ASLR y PIE deshabilitadas, y con una versión específica de la biblioteca libc. Luego se intentó crear un exploit con la participación humana, en la que se lograron superar algunas dificultades y se logró filtrar la dirección de la pila, pero hasta la fecha programada de divulgación de la vulnerabilidad, el exploit no fue completado. Según los investigadores que identificaron la vulnerabilidad, los asistentes de IA aún no son capaces de crear exploits para productos complejos, pero esperan que en el futuro otros investigadores puedan terminar su trabajo y escribir un exploit completamente funcional.

De las principales distribuciones, las versiones de Exim 4.97+ se utilizan en Debian 13, Ubuntu 24.04+, SUSE/openSUSE, Arch Linux, Alpine Linux 3.19+, ALT Linux p11, ROSA, Gentoo, OpenWRT, Fedora, EPEL (exim no está incluido en el repositorio estándar de RHEL) y FreeBSD. La compilación de Exim con GnuTLS se aplica por defecto en Debian y Ubuntu, en otras distribuciones requiere confirmar. Como solución alternativa para bloquear la vulnerabilidad, se puede desactivar la extensión CHUNKING mediante la configuración chunking_advertise_hosts en el archivo de configuración.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster