Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-72898-metabase-sqli — Detector + análise de causa-raiz para CVE-2026-72898 (SQLi não autenticado no Metabase via reset_password) | Kitploit
Ferramentas/GitHubGitHub/d-maggipinto/cve-2026-72898-metabase-sqli
Scanners de VulnerabilidadesAnálise de VulnerabilidadesExploraçãoSegurança WebTestes de Penetração
GitHubd-maggipinto/cve-2026-72898-metabase-sqli

CVE-2026-72898-metabase-sqli

Detector + análise de causa-raiz para CVE-2026-72898 (SQLi não autenticado no Metabase via reset_password)

Ver Repositório
há 17h 49mAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-72898 — Injeção SQL não autenticada no Metabase (detector + análise)

CVE CVSS CISA KEV Product Type Auth License

Injeção SQL não autenticada no Metabase via POST /api/session/reset_password. CVSS 10.0, no catálogo CISA KEV, explorada ativamente.

Um campo não declarado no corpo da solicitação de redefinição de senha chega à consulta de usuário do banco de dados da aplicação como uma estrutura HoneySQL em vez de um identificador validado. Uma chave de objeto JSON torna-se uma keyword Clojure, então {"raw": "<SQL>"} compila para a cláusula do HoneySQL e é emitida — SQL arbitrário contra o banco de dados da aplicação Metabase, sem qualquer autenticação.

:raw
literalmente, sem parâmetros

Este repositório contém um detector (uma ferramenta de veredito cega baseada em tempo) e uma análise de causa raiz derivada do patch do fornecedor. Destina-se a defensores que verificam sua própria exposição e a pesquisadores de segurança que estudam o bug. Ele não exfiltra dados nem fornece um exploit de tomada de controle administrativo.

  • cve-2026-72898.py — detector com verificação de versão e falha segura (VULN / SAFE / UNTESTED)
  • TECHNICAL.md — análise completa de causa raiz a partir do diff do patch v0.63.2 → v0.63.15
  • lab/docker-compose.yml — uma instância vulnerável + corrigida para reprodução

Demonstração

Demonstração do detector CVE-2026-72898

O detector reporta VULN contra uma instância afetada e SAFE contra uma corrigida — e UNTESTED (nunca um falso SAFE) quando uma solicitação é limitada, armazenada em cache ou nunca chega à aplicação. Uma gravação também é fornecida como um cast asciinema.

Versões afetadas / corrigidas

BranchVulnerávelCorrigida
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

Aviso: GHSA-vwf4-m7j8-wcjf. Se você executa uma versão afetada, atualize agora — isto está sendo explorado ativamente.

A 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>"}}

produz, no banco de dados da aplicação:

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

O bug é cego — o fluxo de redefinição engole erros SQL e retorna um 400 {"errors":{"password":"Invalid reset token"}} idêntico em todos os casos — então o detector usa um oráculo de tempo. Consulte TECHNICAL.md para o fluxo de dados completo e o diff do patch.

Uso

root@kitploit:~
python3 cve-2026-72898.py https://metabase.example.com                    # banco de dados da aplicação H2 (padrão)
python3 cve-2026-72898.py https://metabase.example.com --engine postgres  # oráculo pg_sleep
python3 cve-2026-72898.py https://metabase.example.com --json --trials 5

Código de saída 0 = VULN, 1 = SAFE ou UNTESTED.

Por que falha de forma segura

Os vereditos são VULN / SAFE / UNTESTED — nunca "provavelmente seguro". A ferramenta:

  • recusa-se a disparar fora da faixa de versões afetadas (um negativo ali descreve a versão, não o exploit) — --force substitui deliberadamente;
  • rotaciona X-Forwarded-For a cada solicitação, porque o endpoint de redefinição limita a 10 tentativas e a resposta de limitação é um 400 rápido que de outra forma imitaria um negativo;
  • usa um oráculo H2 (sum(x) sobre SYSTEM_RANGE) que o mecanismo não pode otimizar, e exige que o atraso ultrapasse tanto um piso absoluto quanto a própria dispersão de tempo do controle;
  • classifica uma solicitação limitada, armazenada em cache ou com falha de transporte como UNTESTED, não SAFE.

Reprodução

root@kitploit:~
cd lab
docker compose up -d          # 3300 = vulnerável v0.63.2, 3301 = corrigida v0.63.15
# aguarde ~90s para a inicialização do banco de dados na primeira execução
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

Verificado: v0.63.2 mostra um delta de 8+ segundos que escala linearmente com a contagem de linhas do payload (5M→0.85s, 10M→1.96s, 20M→4.61s, 40M→7.97s); v0.63.15 não mostra diferencial.

Uso responsável

Teste apenas sistemas que você possui ou para os quais está explicitamente autorizado a avaliar. O acesso não autorizado a sistemas de computador é ilegal na maioria das jurisdições. Esta ferramenta detecta a vulnerabilidade com uma sonda de tempo benigna e intencionalmente não lê, modifica ou exfiltra dados.

Licença

MIT — consulte LICENSE.

Baixar ferramenta