Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-72898-metabase-sqli — Detector + análisis de causa raíz para CVE-2026-72898 (SQLi no autenticado en Metabase a través de reset_password) | Kitploit
Herramientas/GitHubGitHub/d-maggipinto/cve-2026-72898-metabase-sqli
Escáneres de VulnerabilidadesAnálisis de VulnerabilidadesExplotaciónSeguridad WebPruebas de Penetración
GitHubd-maggipinto/cve-2026-72898-metabase-sqli

CVE-2026-72898-metabase-sqli

Detector + análisis de causa raíz para CVE-2026-72898 (SQLi no autenticado en Metabase a través de reset_password)

Ver Repositorio
hace 17h 49mAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-72898 — Inyección SQL no autenticada en Metabase (detector + análisis)

CVE CVSS CISA KEV Product Type Auth License

Inyección SQL no autenticada en Metabase a través de POST /api/session/reset_password. CVSS 10.0, en el catálogo CISA KEV, explotada activamente en la naturaleza.

Un campo no declarado en el cuerpo de la solicitud de restablecimiento de contraseña llega a la búsqueda de usuario en la base de datos de la aplicación como una estructura HoneySQL en lugar de un identificador validado. Una clave de objeto JSON se convierte en una palabra clave de Clojure, por lo que {"raw": "<SQL>"} se compila en la cláusula de HoneySQL y se emite — SQL arbitrario contra la base de datos de la aplicación de Metabase, sin autenticación.

:raw
textualmente, sin parametrizar

Este repositorio contiene un detector (una herramienta de veredicto ciego basada en tiempo) y un análisis de causa raíz derivado del parche del proveedor. Está destinado a defensores que verifican su propia exposición y a investigadores de seguridad que estudian el fallo. No exfiltra datos ni proporciona un exploit de toma de control administrativo armado.

  • cve-2026-72898.py — detector con control de versión y cierre seguro (VULN / SAFE / UNTESTED)
  • TECHNICAL.md — análisis completo de causa raíz a partir del diff del parche v0.63.2 → v0.63.15
  • lab/docker-compose.yml — una instancia vulnerable y otra parcheada para reproducción

Demo

Demostración del detector CVE-2026-72898

El detector informa VULN contra una instancia afectada y SAFE contra una parcheada — y UNTESTED (nunca un SAFE falso) cuando una solicitud es limitada, almacenada en caché o nunca llega a la aplicación. También se proporciona una grabación como cast de asciinema.

Versiones afectadas / corregidas

RamaVulnerableCorregida
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. Si ejecuta una versión afectada, actualice ahora — esto se está explotando activamente en la naturaleza.

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, en la base de datos de la aplicación:

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

El fallo es ciego — el flujo de restablecimiento absorbe los errores SQL y devuelve un 400 {"errors":{"password":"Invalid reset token"}} idéntico en todos los casos — por lo que el detector utiliza un oráculo de tiempo. Consulte TECHNICAL.md para el flujo de datos completo y el diff del parche.

Uso

root@kitploit:~
python3 cve-2026-72898.py https://metabase.example.com                    # BD de aplicación H2 (predeterminada)
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 salida 0 = VULN, 1 = SAFE o UNTESTED.

Por qué cierra en modo seguro

Los veredictos son VULN / SAFE / UNTESTED — nunca "probablemente seguro". La herramienta:

  • se niega a ejecutarse fuera del rango de versiones afectadas (un negativo allí describe la versión, no el exploit) — --force lo anula deliberadamente;
  • rota X-Forwarded-For por solicitud, porque el endpoint de restablecimiento limita a 10 intentos y la respuesta de limitación es un 400 rápido que de otro modo imitaría un negativo;
  • utiliza un oráculo H2 (sum(x) sobre SYSTEM_RANGE) que el motor no puede optimizar, y requiere que el retraso supere tanto un umbral absoluto como la dispersión temporal del propio control;
  • clasifica una solicitud limitada, almacenada en caché o con fallo de transporte como UNTESTED, no SAFE.

Reproducción

root@kitploit:~
cd lab
docker compose up -d          # 3300 = vulnerable v0.63.2, 3301 = parcheada v0.63.15
# espere ~90s para la inicialización de la BD en el primer arranque
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 muestra un delta de más de 8 segundos que escala linealmente con el número de filas de la carga útil (5M→0.85s, 10M→1.96s, 20M→4.61s, 40M→7.97s); v0.63.15 no muestra diferencial.

Uso responsable

Pruebe únicamente sistemas que le pertenezcan o para los que tenga autorización explícita de evaluación. El acceso no autorizado a sistemas informáticos es ilegal en la mayoría de las jurisdicciones. Esta herramienta detecta la vulnerabilidad con una sonda de tiempo benigna y, deliberadamente, no lee, modifica ni exfiltra datos.

Licencia

MIT — consulte LICENSE.

Descargar herramienta