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-72898-metabase-sqli — Rilevatore + analisi della causa principale per CVE-2026-72898 (SQLi non autenticato in Metabase tramite reset_password) | Kitploit
Strumenti/GitHubGitHub/d-maggipinto/cve-2026-72898-metabase-sqli
Scanner di VulnerabilitàAnalisi delle VulnerabilitàExploitSicurezza WebPenetration Testing
GitHubd-maggipinto/cve-2026-72898-metabase-sqli

CVE-2026-72898-metabase-sqli

Rilevatore + analisi della causa principale per CVE-2026-72898 (SQLi non autenticato in Metabase tramite reset_password)

Vedi Repository
920 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-72898 — SQL injection non autenticata in Metabase (rilevatore + analisi)

CVE CVSS CISA KEV Product Type Auth License

SQL injection non autenticata in Metabase tramite POST /api/session/reset_password. CVSS 10.0, nel catalogo CISA KEV, sfruttata in natura.

Un campo non dichiarato nel corpo della richiesta di reset della password raggiunge la ricerca dell'utente nel database dell'applicazione come struttura HoneySQL anziché come identificatore validato. Una chiave di un oggetto JSON diventa una keyword Clojure, quindi {"raw": "<SQL>"} viene compilata nella clausola di HoneySQL e viene emessa — SQL arbitrario contro il database dell'applicazione Metabase, senza alcuna autenticazione.

:raw
letteralmente, senza parametrizzazione

Questo repository contiene un rilevatore (uno strumento di verdetto cieco basato sul tempo) e un'analisi della causa principale derivata dalla patch del fornitore. È destinato ai difensori che verificano la propria esposizione e ai ricercatori di sicurezza che studiano il bug. Non esfiltra dati né fornisce un exploit weaponizzato per l'acquisizione di privilegi di amministratore.

  • cve-2026-72898.py — rilevatore con controllo versione e fail-closed (VULN / SAFE / UNTESTED)
  • TECHNICAL.md — analisi completa della causa principale dal diff della patch v0.63.2 → v0.63.15
  • lab/docker-compose.yml — un'istanza vulnerabile e una patchata per la riproduzione

Demo

CVE-2026-72898 detector demo

Il rilevatore riporta VULN contro un'istanza vulnerabile e SAFE contro una patchata — e UNTESTED (mai un falso SAFE) quando una richiesta viene limitata, memorizzata nella cache o non raggiunge mai l'app. È disponibile anche una registrazione come cast asciinema.

Versioni vulnerabili / corrette

BranchVulnerabileCorretta
0.58 / 1.58< 0.58.240.58.24
0.59 / 1.59< 0.59.210.59.21
0.60 / 1.60< 0.60.170.60.17
0.61 / 1.61< 0.61.110.61.11
0.62 / 1.62< 0.62.90.62.9
0.63 / 1.63< 0.63.50.63.5

Avviso: GHSA-vwf4-m7j8-wcjf. Se esegui una versione vulnerabile, aggiorna subito — questa vulnerabilità viene sfruttata in natura.

La primitiva

root@kitploit:~
POST /api/session/reset_password HTTP/1.1
Content-Type: application/json

{"token":"1_00000000-0000-0000-0000-000000000000",
 "password":"Placeholder1!",
 "user-id":{"raw":"<ARBITRARY SQL>"}}

produce, nel database dell'applicazione:

root@kitploit:~
SELECT id, ... FROM core_user WHERE id = (<ARBITRARY SQL>)

Il bug è cieco — il flusso di reset inghiotte gli errori SQL e restituisce un 400 {"errors":{"password":"Invalid reset token"}} identico in ogni caso — quindi il rilevatore usa un oracolo temporale. Vedi TECHNICAL.md per il flusso dati completo e il diff della patch.

Utilizzo

root@kitploit:~
python3 cve-2026-72898.py https://metabase.example.com                    # H2 app db (default)
python3 cve-2026-72898.py https://metabase.example.com --engine postgres  # pg_sleep oracle
python3 cve-2026-72898.py https://metabase.example.com --json --trials 5

Codice di uscita 0 = VULN, 1 = SAFE o UNTESTED.

Perché fallisce in modo sicuro

I verdetti sono VULN / SAFE / UNTESTED — mai "probabilmente a posto". Lo strumento:

  • rifiuta di attivarsi al di fuori dell'intervallo di versioni vulnerabili (un negativo lì descrive la versione, non l'exploit) — --force lo sovrascrive deliberatamente;
  • ruota X-Forwarded-For per ogni richiesta, perché l'endpoint di reset limita a 10 tentativi e la risposta di limitazione è un 400 veloce che altrimenti imiterebbe un negativo;
  • usa un oracolo H2 (sum(x) su SYSTEM_RANGE) che il motore non può ottimizzare via, e richiede che il ritardo superi sia una soglia assoluta sia la dispersione temporale del controllo stesso;
  • classifica una richiesta limitata, memorizzata nella cache o con errore di trasporto come UNTESTED, non SAFE.

Riproduzione

root@kitploit:~
cd lab
docker compose up -d          # 3300 = vulnerabile v0.63.2, 3301 = patchata v0.63.15
# attendi ~90s per l'inizializzazione iniziale del DB
python3 ../cve-2026-72898.py http://127.0.0.1:3300                 # -> VULN
python3 ../cve-2026-72898.py http://127.0.0.1:3301 --force         # -> SAFE

Verificato: v0.63.2 mostra un delta di 8+ secondi che scala linearmente con il numero di righe del payload (5M→0.85s, 10M→1.96s, 20M→4.61s, 40M→7.97s); v0.63.15 non mostra alcuna differenza.

Uso responsabile

Testa solo sistemi di tua proprietà o per i quali sei esplicitamente autorizzato a effettuare valutazioni. L'accesso non autorizzato a sistemi informatici è illegale nella maggior parte delle giurisdizioni. Questo strumento rileva la vulnerabilità con una sonda temporale benigna e intenzionalmente non legge, modifica o esfiltra dati.

Licenza

MIT — vedi LICENSE.

Scarica lo strumento