Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Dead.Letter-CVE-2026-45185 — Scanner di vulnerabilità basato su shell per CVE-2026-45185 (Dead.Letter) in Exim MTA. Rileva l'uso dopo il rilascio (use-after-free) nelle build GnuTLS, verifica la versione, la libreria TLS e la configurazione CHUNKING. Produce output JSON per l'integrazione CI/CD. | Kitploit
Strumenti/GitHubGitHub/liamromanis101/dead.letter-cve-2026-45185
Scanner di VulnerabilitàAnalisi delle VulnerabilitàExploitScripting e AutomazioneAudit di ConfigurazioneSicurezza di ReteDevSecOpsSicurezza Email
GitHub
liamromanis101/dead.letter-cve-2026-45185

Dead.Letter-CVE-2026-45185

Scanner di vulnerabilità basato su shell per CVE-2026-45185 (Dead.Letter) in Exim MTA. Rileva l'uso dopo il rilascio (use-after-free) nelle build GnuTLS, verifica la versione, la libreria TLS e la configurazione CHUNKING. Produce output JSON per l'integrazione CI/CD.

Vedi Repository
22174 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-45185 — Scanner di vulnerabilità Exim "Dead.Letter"

Uno script shell per rilevare se un sistema Linux è vulnerabile a CVE-2026-45185, un use-after-free nell'Exim mail transfer agent che può portare all'esecuzione di codice remota.

Progettato per l'uso in pipeline CI/CD, strumenti di gestione della configurazione e audit di sistema ad hoc. Produce output sia leggibile dall'uomo sia leggibile dalla macchina (JSON).


La Vulnerabilità

CVE-2026-45185 (alias: Dead.Letter) è un bug use-after-free nel parsing del corpo dei messaggi BDAT (binary data) di Exim, attivato quando TLS è gestito da GnuTLS.

Durante lo shutdown TLS, Exim libera il proprio buffer di trasferimento TLS — ma un wrapper di ricezione BDAT annidato può ancora elaborare byte in arrivo e chiamare ungetc(), scrivendo un singolo byte \n nella regione liberata. Quella scrittura di un byte corrompe i metadati dell'heap allocator, da cui un attaccante può ottenere primitive di memoria aggiuntive e raggiungere l'esecuzione di codice remoto.

ProprietàDettaglio
CVECVE-2026-45185
AliasDead.Letter
TipoUse-After-Free (CWE-416)
ComponenteGestore BDAT/CHUNKING di Exim (solo build GnuTLS)
Vettore di attaccoRete — non autenticato, richiede solo una connessione TLS e l'estensione CHUNKING
Versioni vulnerabiliExim 4.97 – 4.99.2, solo build GnuTLS
Corretta inExim 4.99.3
Scoperta daFederico Kirschbaum, XBOW Security Lab (segnalata il 1 maggio 2026)

Le build OpenSSL non sono vulnerabili. La vulnerabilità è specifica di Exim compilato con USE_GNUTLS=yes. Se il tuo Exim usa OpenSSL, non sei vulnerabile indipendentemente dalla versione.


Cosa Controlla lo Script

Lo script procede attraverso un albero decisionale, fermandosi e marcando il sistema come non vulnerabile non appena viene confermata una condizione sicura definitiva:

Controllo 1 — Presenza di Exim Cerca in $PATH e nelle posizioni di installazione comuni (/usr/sbin/exim, /usr/sbin/exim4, /usr/local/sbin/exim). Se Exim non viene trovato, il sistema non è vulnerabile e lo script termina immediatamente.

Controllo 2 — Versione di Exim Analizza l'output di exim -bV e lo confronta con l'intervallo vulnerabile (4.97 – 4.99.2). Le versioni ≥ 4.99.3 sono considerate corrette. Le versioni al di fuori dell'intervallo noto sono marcate come non vulnerabili (con una nota se non sono riconosciute).

Controllo 3 — Libreria TLS (il passaggio critico) Usa tre metodi di rilevamento in sequenza:

  1. Informazioni di build di exim -bV (il più affidabile — Exim riporta le proprie funzionalità di compilazione, es. Support for: GnuTLS)
  2. Collegamento delle librerie condivise con ldd
  3. Scansione binaria con strings (fallback)

Se viene rilevato OpenSSL → il verdetto diventa non vulnerabile indipendentemente dalla versione. Se viene rilevato GnuTLS → la superficie di attacco è confermata come presente. Se non è possibile determinare nessuno dei due → il risultato è inconcludente.

Controllo 4 — Configurazione CHUNKING/BDAT (controllo workaround) Viene eseguito solo se il sistema è ancora marcato come vulnerabile a questo punto. Verifica se chunking_advertise_hosts è stato esplicitamente impostato a un valore vuoto nella configurazione di Exim, il che disabilita l'annuncio di BDAT e blocca il vettore di attacco. Gestisce sia config a file singolo sia la struttura di configurazione suddivisa di Debian (frammenti /etc/exim4/conf.d/).

Nota: se chunking_advertise_hosts è assente dalla configurazione (il default), Exim annuncia CHUNKING a tutti gli host (*). L'opzione deve essere esplicitamente impostata a un valore vuoto per disabilitarlo.

Controllo 5 — Mitigazioni di sistema informative Non modifica il verdetto, ma riporta fattori che influenzano la sfruttabilità:

  • Livello ASLR (/proc/sys/kernel/randomize_va_space) — dovrebbe essere 2
  • Versione glibc — la 2.32+ ha controlli di integrità dei metadati dell'heap più forti
  • Output di checksec per il binario Exim (PIE, RELRO, stack canaries) se checksec è installato
  • Sandboxing dell'unità systemd: MemoryDenyWriteExecute, NoNewPrivileges, SystemCallFilter

Requisiti

  • Bash 4.0 o successivo
  • Linux con filesystem /proc (per il controllo ASLR)
  • Coreutils standard: grep, awk, ldd, head
  • checksec (opzionale — per l'analisi dell'hardening del binario)
  • systemctl (opzionale — per l'ispezione dell'unità systemd)
  • Deve essere eseguito con privilegi sufficienti per leggere il file di configurazione di Exim (tipicamente root, o un utente nel gruppo Debian-exim su Debian/Ubuntu)

Non sono richieste dipendenze esterne per i controlli principali della vulnerabilità.


Utilizzo

chmod +x check_cve_2026_45185.sh
./check_cve_2026_45185.sh

Opzioni

FlagDescrizione
--jsonRestituisce i risultati come oggetto JSON (vedi sotto)
--quietSopprime tutto l'output; viene impostato solo il codice di uscita
--no-colorDisabilita i codici colore ANSI (utile per i file di log)
--help / -hStampa le informazioni sull'utilizzo

Codici di uscita

CodiceSignificato
0Non vulnerabile (o è stata trovata una condizione sicura definitiva)
1Vulnerabile
2Inconcludente — non è stato possibile determinare uno o più fatti richiesti; trattare come potenzialmente vulnerabile
3Errore dello script o ambiente non supportato

Esempio di Output

Leggibile dall'uomo (default)

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

Output JSON (--json)

{
  "cve": "CVE-2026-45185",
  "alias": "Dead.Letter",
  "host": "mailserver-01",
  "timestamp": "2026-05-12T17:00:00Z",
  "verdict": "vulnerable",
  "reason": "Exim version 4.99.1 is in vulnerable range 4.97–4.99.2",
  "exit_code": 1,
  "findings": {
    "exim_binary": "/usr/sbin/exim4",
    "exim_version": "4.99.1",
    "exim_version_vulnerable": "true",
    "tls_library": "gnutls",
    "tls_library_detected": "gnutls",
    "exim_config": "/etc/exim4/exim4.conf",
    "chunking_advertised": "true",
    "aslr_level": "2",
    "glibc_version": "2.35"
  },
  "mitigations": [
    "aslr=full"
  ]
}
Scarica lo strumento