Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Dead.Letter-CVE-2026-45185 — Shell-basierter Schwachstellen-Scanner für CVE-2026-45185 (Dead.Letter) in Exim MTA. Erkennt Use-After-Free in GnuTLS-Builds, prüft Version, TLS-Bibliothek und CHUNKING-Konfiguration. Erzeugt JSON-Ausgabe für CI/CD-Integration. | Kitploit
Tools/GitHubGitHub/liamromanis101/dead.letter-cve-2026-45185
SchwachstellenscannerSchwachstellenanalyseExploitationScripting & AutomatisierungKonfigurationsprüfungNetzwerksicherheitDevSecOpsE-Mail-Sicherheit
GitHub
liamromanis101/dead.letter-cve-2026-45185

Dead.Letter-CVE-2026-45185

Shell-basierter Schwachstellen-Scanner für CVE-2026-45185 (Dead.Letter) in Exim MTA. Erkennt Use-After-Free in GnuTLS-Builds, prüft Version, TLS-Bibliothek und CHUNKING-Konfiguration. Erzeugt JSON-Ausgabe für CI/CD-Integration.

Repository anzeigen
2226vor 5 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-45185 — „Dead.Letter“ Exim-Schwachstellenscanner

Ein Shell-Skript zur Erkennung, ob ein Linux-System anfällig für CVE-2026-45185 ist, einen Use-After-Free-Fehler im Exim-Mail-Transfer-Agenten, der zu Remote-Codeausführung führen kann.

Konzipiert für den Einsatz in CI/CD-Pipelines, Konfigurationsmanagement-Tools und Ad-hoc-Systemaudits. Erzeugt sowohl menschenlesbare als auch maschinenlesbare (JSON) Ausgabe.


Die Schwachstelle

CVE-2026-45185 (Alias: Dead.Letter) ist ein Use-After-Free-Fehler in Exims BDAT-Parsing (Binary Data) für Nachrichtenkörper, der ausgelöst wird, wenn TLS von GnuTLS verarbeitet wird.

Während des TLS-Shutdowns gibt Exim seinen TLS-Übertragungspuffer frei – aber ein verschachtelter BDAT-Empfangswrapper kann weiterhin eingehende Bytes verarbeiten und ungetc() aufrufen, wodurch ein einzelnes \n-Byte in den freigegebenen Bereich geschrieben wird. Dieses Ein-Byte-Schreiben beschädigt die Heap-Allocator-Metadaten, von denen ein Angreifer weitere Speicher-Primitive ableiten und eine Remote-Codeausführung erreichen kann.

EigenschaftDetail
CVECVE-2026-45185
AliasDead.Letter
TypUse-After-Free (CWE-416)
KomponenteExim BDAT/CHUNKING-Handler (nur GnuTLS-Builds)
AngriffsvektorNetzwerk – nicht authentifiziert, erfordert nur eine TLS-Verbindung und CHUNKING-Erweiterung
Betroffene VersionenExim 4.97 – 4.99.2, nur GnuTLS-Builds
Behoben inExim 4.99.3
Entdeckt vonFederico Kirschbaum, XBOW Security Lab (gemeldet am 1. Mai 2026)

OpenSSL-Builds sind nicht betroffen. Die Schwachstelle betrifft nur Exim, das mit USE_GNUTLS=yes kompiliert wurde. Wenn Ihr Exim gegen OpenSSL gelinkt ist, sind Sie unabhängig von der Version nicht verwundbar.


Was das Skript prüft

Das Skript durchläuft einen Entscheidungsbaum und stoppt und markiert das System als nicht verwundbar, sobald ein definitiv sicherer Zustand bestätigt ist:

Check 1 — Exim-Vorhandensein Durchsucht $PATH und übliche Installationsorte (/usr/sbin/exim, /usr/sbin/exim4, /usr/local/sbin/exim). Wenn Exim nicht gefunden wird, ist das System nicht verwundbar und das Skript beendet sich sofort.

Check 2 — Exim-Version Analysiert die exim -bV Ausgabe und vergleicht sie mit dem betroffenen Bereich (4.97 – 4.99.2). Versionen ≥ 4.99.3 werden als gepatcht behandelt. Versionen außerhalb des bekannten Bereichs werden als nicht verwundbar markiert (mit einem Hinweis, falls sie nicht erkannt werden).

Check 3 — TLS-Bibliothek (die kritische Hürde) Verwendet drei Erkennungsmethoden nacheinander:

  1. exim -bV Build-Informationen (zuverlässigste Methode – Exim meldet seine eigenen Kompilierungsmerkmale, z. B. Support for: GnuTLS)
  2. ldd Shared-Library-Verknüpfung
  3. strings Binärscan (Fallback)

Wenn OpenSSL erkannt wird → Bewertung kippt zu nicht verwundbar unabhängig von der Version. Wenn GnuTLS erkannt wird → die Angriffsfläche wird als vorhanden bestätigt. Wenn keines bestimmt werden kann → Ergebnis ist nicht eindeutig.

Check 4 — CHUNKING/BDAT-Konfiguration (Workaround-Prüfung) Wird nur ausgeführt, wenn das System zu diesem Zeitpunkt noch als verwundbar markiert ist. Prüft, ob chunking_advertise_hosts explizit auf einen leeren Wert in der Exim-Konfiguration gesetzt wurde, was die BDAT-Ankündigung deaktiviert und den Angriffsvektor blockiert. Behandelt sowohl Einzeldatei-Konfigurationen als auch Debian's Split-Konfigurationslayout (/etc/exim4/conf.d/-Fragmente).

Hinweis: Wenn chunking_advertise_hosts in der Konfiguration fehlt (Standard), bewirbt Exim CHUNKING an alle Hosts (*). Die Option muss explizit auf einen leeren Wert gesetzt werden, um sie zu deaktivieren.

Check 5 — Informative System-Mitigations Ändert die Bewertung nicht, meldet aber Faktoren, die die Ausnutzbarkeit beeinflussen:

  • ASLR-Level (/proc/sys/kernel/randomize_va_space) — sollte 2 sein
  • glibc-Version — 2.32+ hat stärkere Heap-Metadaten-Integritätsprüfungen
  • checksec-Ausgabe für das Exim-Binär (PIE, RELRO, Stack Canaries), falls checksec installiert ist
  • systemd-Unit-Sandboxing: MemoryDenyWriteExecute, NoNewPrivileges, SystemCallFilter

Anforderungen

  • Bash 4.0 oder höher
  • Linux mit /proc-Dateisystem (für ASLR-Prüfung)
  • Standard coreutils: grep, awk, ldd, head
  • checksec (optional – für Binär-Härtungsanalyse)
  • systemctl (optional – für systemd-Unit-Inspektion)
  • Muss mit ausreichenden Berechtigungen ausgeführt werden, um die Exim-Konfigurationsdatei lesen zu können (normalerweise root oder ein Benutzer in der Debian-exim-Gruppe auf Debian/Ubuntu)
  • Für die Kern-Schwachstellenprüfungen sind keine externen Abhängigkeiten erforderlich.

Verwendung

chmod +x check_cve_2026_45185.sh
./check_cve_2026_45185.sh

Optionen

FlagBeschreibung
--jsonErgebnisse als JSON-Objekt ausgeben (siehe unten)
--quietAlle Ausgabe unterdrücken; nur der Exit-Code wird gesetzt
--no-colorANSI-Farbcodes deaktivieren (nützlich für Logdateien)
--help / -hNutzungsinformationen anzeigen

Exit-Codes

CodeBedeutung
0Nicht verwundbar (oder ein definitiv sicherer Zustand wurde gefunden)
1Verwundbar
2Nicht eindeutig – ein oder mehrere erforderliche Fakten konnten nicht bestimmt werden; als potenziell verwundbar behandeln
3Skriptfehler oder nicht unterstützte Umgebung

Beispielausgabe

Menschenlesbar (Standard)

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

JSON-Ausgabe (--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"
  ]
}

CI/CD-Integration

GitHub Actions

Tool herunterladen