Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Dead.Letter-CVE-2026-45185 — # Escáner de vulnerabilidades basado en shell para CVE-2026-45185 (Dead.Letter) en Exim MTA. Detecta use-after-free en compilaciones de GnuTLS, verifica la versión, la biblioteca TLS y la configuración CHUNKING. Produce salida JSON para integración con CI/CD. | Kitploit
Herramientas/GitHubGitHub/liamromanis101/dead.letter-cve-2026-45185
Escáneres de VulnerabilidadesAnálisis de VulnerabilidadesExplotaciónScripting y AutomatizaciónAuditoría de ConfiguraciónSeguridad de RedesDevSecOpsSeguridad de Correo Electrónico
GitHub
liamromanis101/dead.letter-cve-2026-45185

Dead.Letter-CVE-2026-45185

# Escáner de vulnerabilidades basado en shell para CVE-2026-45185 (Dead.Letter) en Exim MTA. Detecta use-after-free en compilaciones de GnuTLS, verifica la versión, la biblioteca TLS y la configuración CHUNKING. Produce salida JSON para integración con CI/CD.

Ver Repositorio
2217hace 4 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-45185 — Escáner de vulnerabilidades de Exim «Dead.Letter»

Un script de shell para detectar si un sistema Linux es vulnerable a CVE-2026-45185, un use-after-free en el agente de transferencia de correo Exim que puede conducir a la ejecución remota de código.

Diseñado para su uso en canalizaciones de CI/CD, herramientas de gestión de configuración y auditorías de sistema ad hoc. Produce una salida legible para humanos y legible por máquina (JSON).


La vulnerabilidad

CVE-2026-45185 (alias: Dead.Letter) es un fallo de use-after-free en el análisis del cuerpo del mensaje BDAT (datos binarios) de Exim, que se activa cuando TLS es gestionado por GnuTLS.

Durante el cierre de TLS, Exim libera su búfer de transferencia TLS — pero un envoltorio receptor BDAT anidado aún puede procesar bytes entrantes y llamar a ungetc(), escribiendo un único byte \n en la región liberada. Esa escritura de un byte corrompe los metadatos del asignador de heap, a partir de los cuales un atacante puede obtener primitivas de memoria adicionales y lograr la ejecución remota de código.

PropiedadDetalle
CVECVE-2026-45185
AliasDead.Letter
TipoUse-After-Free (CWE-416)
ComponenteManejador BDAT/CHUNKING de Exim (solo compilaciones con GnuTLS)
Vector de ataqueRed — no autenticado, requiere solo una conexión TLS y la extensión CHUNKING
Versiones afectadasExim 4.97 – 4.99.2, solo compilaciones con GnuTLS
Corregido enExim 4.99.3
Descubierto porFederico Kirschbaum, XBOW Security Lab (reportado el 1 de mayo de 2026)

Las compilaciones con OpenSSL no están afectadas. La vulnerabilidad es específica de Exim compilado con USE_GNUTLS=yes. Si su Exim enlaza contra OpenSSL, no es vulnerable independientemente de la versión.


Qué comprueba el script

El script recorre un árbol de decisión, deteniéndose y marcando el sistema como no vulnerable en cuanto se confirma una condición segura definitiva:

Comprobación 1 — Presencia de Exim Busca en $PATH y en ubicaciones de instalación comunes (/usr/sbin/exim, /usr/sbin/exim4, /usr/local/sbin/exim). Si no se encuentra Exim, el sistema no es vulnerable y el script sale inmediatamente.

Comprobación 2 — Versión de Exim Analiza la salida de exim -bV y la compara con el rango afectado (4.97 – 4.99.2). Las versiones ≥ 4.99.3 se tratan como parcheadas. Las versiones fuera del rango conocido se marcan como no vulnerables (con una nota si no son reconocidas).

Comprobación 3 — Biblioteca TLS (el punto crítico) Utiliza tres métodos de detección en secuencia:

  1. Información de compilación de exim -bV (la más fiable — Exim informa de sus propias características de compilación, p. ej. Support for: GnuTLS)
  2. Enlazado de bibliotecas compartidas con ldd
  3. Escaneo binario con strings (respaldo)

Si se detecta OpenSSL → el veredicto cambia a no vulnerable independientemente de la versión. Si se detecta GnuTLS → se confirma que la superficie de ataque está presente. Si no se puede determinar ninguno → el resultado es inconcluyente.

Comprobación 4 — Configuración de CHUNKING/BDAT (comprobación de solución alternativa) Solo se ejecuta si el sistema sigue marcado como vulnerable en este punto. Comprueba si chunking_advertise_hosts se ha establecido explícitamente a un valor vacío en la configuración de Exim, lo que desactiva el anuncio de BDAT y bloquea el vector de ataque. Gestiona tanto configuraciones de un solo archivo como el diseño de configuración dividida de Debian (fragmentos de /etc/exim4/conf.d/).

Nota: si chunking_advertise_hosts está ausente de la configuración (por defecto), Exim anuncia CHUNKING a todos los hosts (*). La opción debe establecerse explícitamente a un valor vacío para desactivarla.

Comprobación 5 — Mitigaciones informativas del sistema No cambia el veredicto, pero informa sobre factores que afectan a la explotabilidad:

  • Nivel de ASLR (/proc/sys/kernel/randomize_va_space) — debería ser 2
  • Versión de glibc — 2.32+ tiene comprobaciones de integridad de metadatos del heap más sólidas
  • Salida de checksec para el binario de Exim (PIE, RELRO, canarios de pila) si checksec está instalado
  • Sandboxing de la unidad systemd: MemoryDenyWriteExecute, NoNewPrivileges, SystemCallFilter

Requisitos

  • Bash 4.0 o posterior
  • Linux con sistema de archivos /proc (para la comprobación de ASLR)
  • Coreutils estándar: grep, awk, ldd, head
  • checksec (opcional — para el análisis de endurecimiento del binario)
  • systemctl (opcional — para la inspección de unidades systemd)
  • Debe ejecutarse con privilegios suficientes para leer el archivo de configuración de Exim (normalmente root, o un usuario del grupo Debian-exim en Debian/Ubuntu)

No se requieren dependencias externas para las comprobaciones básicas de vulnerabilidad.


Uso

chmod +x check_cve_2026_45185.sh
./check_cve_2026_45185.sh

Opciones

OpciónDescripción
--jsonMuestra los resultados como un objeto JSON (ver más abajo)
--quietSuprime toda la salida; solo se establece el código de salida
--no-colorDesactiva los códigos de color ANSI (útil para archivos de registro)
--help / -hMuestra información de uso

Códigos de salida

CódigoSignificado
0No vulnerable (o se encontró una condición segura definitiva)
1Vulnerable
2Inconcluyente — no se pudieron determinar uno o más hechos necesarios; trátese como potencialmente vulnerable
3Error de script o entorno no compatible

Ejemplo de salida

Legible para humanos (por defecto)

CVE-2026-45185 (Dead.Letter) — Exim Vulnerability Assessment
============================================================

[CHECK] Checking for Exim installation...
[WARN]  Exim binary found: /usr/sbin/exim4
[CHECK] Checking Exim version...
        Detected version: 4.99.1
[FAIL]  Exim 4.99.1 is in the vulnerable range (4.97 – 4.99.2).
[CHECK] Checking TLS library linkage (GnuTLS vs OpenSSL)...
[FAIL]  Exim is linked against GnuTLS — this build IS affected.
[CHECK] Checking CHUNKING (BDAT) advertisement config...
        Config file: /etc/exim4/exim4.conf
[WARN]  chunking_advertise_hosts is not disabled — BDAT is active (default advertises to all hosts).
        Tip: add 'chunking_advertise_hosts =' (empty value) to your main config to disable BDAT as a workaround.
[CHECK] Checking system-level exploit mitigations (informational)...
[PASS]  ASLR: full randomisation (randomize_va_space=2)
        glibc version: 2.35 (2.32+ has stronger heap metadata checks)
[WARN]  systemd: MemoryDenyWriteExecute not set — recommend adding to unit
[WARN]  systemd: NoNewPrivileges not set

------------------------------------------------------------
VERDICT
------------------------------------------------------------
VULNERABLE — CVE-2026-45185
  Reason: Exim version 4.99.1 is in vulnerable range 4.97–4.99.2

Recommended actions:
  1. Upgrade Exim to 4.99.3 or later (primary fix)
  2. As a workaround, set 'chunking_advertise_hosts =' (empty) in exim config
  3. Add MemoryDenyWriteExecute=yes and NoNewPrivileges=yes to the systemd unit
  4. Ensure ASLR is set to 2: echo 2 > /proc/sys/kernel/randomize_va_space
------------------------------------------------------------

Salida JSON (--json)

Descargar herramienta