Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Dead.Letter-CVE-2026-45185 — Scanner de vulnérabilités basé sur shell pour CVE-2026-45185 (Dead.Letter) dans Exim MTA. Détecte une use-after-free dans les builds GnuTLS, vérifie la version, la bibliothèque TLS et la configuration CHUNKING. Produit une sortie JSON pour l'intégration CI/CD. | Kitploit
Outils/GitHubGitHub/liamromanis101/dead.letter-cve-2026-45185
Scanners de VulnérabilitésAnalyse des VulnérabilitésExploitationScripting et AutomatisationAudit de ConfigurationSécurité RéseauDevSecOpsSécurité des Emails
GitHub
liamromanis101/dead.letter-cve-2026-45185

Dead.Letter-CVE-2026-45185

Scanner de vulnérabilités basé sur shell pour CVE-2026-45185 (Dead.Letter) dans Exim MTA. Détecte une use-after-free dans les builds GnuTLS, vérifie la version, la bibliothèque TLS et la configuration CHUNKING. Produit une sortie JSON pour l'intégration CI/CD.

Voir le dépôt
2226il y a 5 moisPas 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" Scanneur de vulnérabilité Exim

Un script shell pour détecter si un système Linux est vulnérable à CVE-2026-45185, une utilisation après libération (use-after-free) dans l'agent de transfert de courrier Exim qui peut conduire à une exécution de code à distance.

Conçu pour être utilisé dans les pipelines CI/CD, les outils de gestion de configuration et les audits système ad-hoc. Produit une sortie à la fois lisible par l'homme et lisible par machine (JSON).


La vulnérabilité

CVE-2026-45185 (alias : Dead.Letter) est un bogue d'utilisation après libération (use-after-free) dans l'analyse du corps des messages BDAT (données binaires) d'Exim, déclenché lorsque TLS est géré par GnuTLS.

Lors de l'arrêt de TLS, Exim libère son tampon de transfert TLS — mais un wrapper de réception BDAT imbriqué peut toujours traiter des octets entrants et appeler ungetc(), écrivant un seul octet \n dans la région libérée. Cette écriture d'un octet corrompt les métadonnées de l'allocateur du tas (heap), à partir desquelles un attaquant peut obtenir davantage de primitives mémoire et réaliser une exécution de code à distance.

PropriétéDétail
CVECVE-2026-45185
AliasDead.Letter
TypeUse-After-Free (CWE-416)
ComposantGestionnaire BDAT/CHUNKING d'Exim (builds GnuTLS uniquement)
Vecteur d'attaqueRéseau — non authentifié, nécessite seulement une connexion TLS et l'extension CHUNKING
Versions affectéesExim 4.97 – 4.99.2, builds GnuTLS uniquement
Corrigé dansExim 4.99.3
Découvert parFederico Kirschbaum, XBOW Security Lab (signalé le 1er mai 2026)

Les builds OpenSSL ne sont pas concernés. La vulnérabilité est spécifique à Exim compilé avec USE_GNUTLS=yes. Si votre Exim est lié à OpenSSL, vous n'êtes pas vulnérable quelle que soit la version.


Ce que le script vérifie

Le script fonctionne via un arbre de décision, s'arrêtant et marquant le système non vulnérable dès qu'une condition de sécurité définitive est confirmée :

Vérification 1 — Présence d'Exim Recherche dans $PATH et les emplacements d'installation courants (/usr/sbin/exim, /usr/sbin/exim4, /usr/local/sbin/exim). Si Exim n'est pas trouvé, le système n'est pas vulnérable et le script se termine immédiatement.

Vérification 2 — Version d'Exim Analyse la sortie de exim -bV et la compare à la plage affectée (4.97 – 4.99.2). Les versions ≥ 4.99.3 sont considérées comme corrigées. Les versions en dehors de la plage connue sont marquées non vulnérables (avec une note si elles ne sont pas reconnues).

Vérification 3 — Bibliothèque TLS (le point critique) Utilise trois méthodes de détection en séquence :

  1. Informations de build exim -bV (la plus fiable — Exim rapporte ses propres fonctionnalités de compilation, ex. Support for: GnuTLS)
  2. Liaison de bibliothèques partagées ldd
  3. Analyse binaire strings (solution de repli)

Si OpenSSL est détecté → le verdict passe à non vulnérable quelle que soit la version. Si GnuTLS est détecté → la surface d'attaque est confirmée comme présente. Si aucun des deux ne peut être déterminé → le résultat est inconcluant.

Vérification 4 — Configuration CHUNKING/BDAT (vérification du contournement) Ne s'exécute que si le système est toujours marqué vulnérable à ce stade. Vérifie si chunking_advertise_hosts a été explicitement défini à une valeur vide dans la configuration d'Exim, ce qui désactive l'annonce BDAT et bloque le vecteur d'attaque. Gère à la fois les configurations mono-fichier et la disposition split-config de Debian (fragments /etc/exim4/conf.d/).

Note : si chunking_advertise_hosts est absent de la configuration (comportement par défaut), Exim annonce CHUNKING à tous les hôtes (*). L'option doit être explicitement définie à une valeur vide pour la désactiver.

Vérification 5 — Atténuations système informatives Ne modifie pas le verdict, mais rapporte les facteurs qui affectent l'exploitabilité :

  • Niveau ASLR (/proc/sys/kernel/randomize_va_space) — doit être 2
  • Version de glibc — 2.32+ dispose de contrôles d'intégrité des métadonnées du tas plus stricts
  • Sortie checksec pour le binaire Exim (PIE, RELRO, canaris de pile) si checksec est installé
  • Sandboxing de l'unité systemd : MemoryDenyWriteExecute, NoNewPrivileges, SystemCallFilter

Prérequis

  • Bash 4.0 ou ultérieur
  • Linux avec système de fichiers /proc (pour la vérification ASLR)
  • Coreutils standard : grep, awk, ldd, head
  • checksec (optionnel — pour l'analyse du durcissement du binaire)
  • systemctl (optionnel — pour l'inspection de l'unité systemd)
  • Doit être exécuté avec des privilèges suffisants pour lire le fichier de configuration d'Exim (généralement root, ou un utilisateur du groupe Debian-exim sur Debian/Ubuntu)

Aucune dépendance externe n'est requise pour les vérifications de vulnérabilité de base.


Utilisation

chmod +x check_cve_2026_45185.sh
./check_cve_2026_45185.sh

Options

OptionDescription
--jsonSortie des résultats sous forme d'objet JSON (voir ci-dessous)
--quietSupprime toute sortie ; seul le code de sortie est défini
--no-colorDésactive les codes couleur ANSI (utile pour les fichiers journaux)
--help / -hAffiche les informations d'utilisation

Codes de sortie

CodeSignification
0Non vulnérable (ou une condition de sécurité définitive a été trouvée)
1Vulnérable
2Inconcluant — impossible de déterminer un ou plusieurs faits requis ; à traiter comme potentiellement vulnérable
3Erreur de script ou environnement non pris en charge

Exemple de sortie

Lisible par l'homme (par défaut)

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
------------------------------------------------------------

Sortie JSON (--json)

Télécharger l’outil