Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-72898-metabase-sqli — Détecteur + analyse de cause racine pour CVE-2026-72898 (SQLi non authentifié via reset_password dans Metabase) | Kitploit
Outils/GitHubGitHub/d-maggipinto/cve-2026-72898-metabase-sqli
Scanners de VulnérabilitésAnalyse des VulnérabilitésExploitationSécurité WebTests d'Intrusion
GitHubd-maggipinto/cve-2026-72898-metabase-sqli

CVE-2026-72898-metabase-sqli

Détecteur + analyse de cause racine pour CVE-2026-72898 (SQLi non authentifié via reset_password dans Metabase)

Voir le dépôt
il y a 17h 48mPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-72898 — Injection SQL non authentifiée dans Metabase (détecteur + analyse)

CVE CVSS CISA KEV Product Type Auth License

Injection SQL non authentifiée dans Metabase via POST /api/session/reset_password. CVSS 10.0, dans le catalogue CISA KEV, exploitée activement dans la nature.

Un champ non déclaré dans le corps de la requête de réinitialisation de mot de passe atteint la recherche d'utilisateur de la base de données applicative en tant que structure HoneySQL plutôt qu'un identifiant validé. Une clé d'objet JSON devient un mot-clé Clojure, donc {"raw": "<SQL>"} se compile en clause de HoneySQL et est émise — du SQL arbitraire contre la base de données applicative de Metabase, sans aucune authentification.

:raw
textuellement, sans paramétrage

Ce dépôt contient un détecteur (un outil de verdict aveugle basé sur le temps) et une analyse de cause racine dérivée du correctif du fournisseur. Il est destiné aux défenseurs vérifiant leur propre exposition et aux chercheurs en sécurité étudiant le bug. Il n'exfiltre pas de données et ne fournit pas d'exploit d'usurpation d'administrateur armé.

  • cve-2026-72898.py — détecteur verrouillé par version, à échec sûr (VULN / SAFE / UNTESTED)
  • TECHNICAL.md — analyse complète de cause racine à partir du diff de correctif v0.63.2 → v0.63.15
  • lab/docker-compose.yml — une instance vulnérable + corrigée pour la reproduction

Démo

Démo du détecteur CVE-2026-72898

Le détecteur rapporte VULN contre une instance affectée et SAFE contre une instance corrigée — et UNTESTED (jamais un faux SAFE) lorsqu'une requête est limitée, mise en cache, ou n'atteint jamais l'application. Un enregistrement est également fourni sous forme de cast asciinema.

Versions affectées / corrigées

BrancheVulnérableCorrigée
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

Avis de sécurité : GHSA-vwf4-m7j8-wcjf. Si vous exécutez une version affectée, mettez à jour immédiatement — cette vulnérabilité est exploitée activement dans la nature.

La primitive

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":"<SQL ARBITRAIRE>"}}

produit, dans la base de données applicative :

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

Le bug est aveugle — le flux de réinitialisation avale les erreurs SQL et renvoie une 400 {"errors":{"password":"Invalid reset token"}} identique dans tous les cas — donc le détecteur utilise un oracle temporel. Voir TECHNICAL.md pour le flux de données complet et le diff du correctif.

Utilisation

root@kitploit:~
python3 cve-2026-72898.py https://metabase.example.com                    # base de données applicative H2 (défaut)
python3 cve-2026-72898.py https://metabase.example.com --engine postgres  # oracle pg_sleep
python3 cve-2026-72898.py https://metabase.example.com --json --trials 5

Code de sortie 0 = VULN, 1 = SAFE ou UNTESTED.

Pourquoi il échoue en toute sécurité

Les verdicts sont VULN / SAFE / UNTESTED — jamais « probablement sûr ». L'outil :

  • refuse de s'exécuter en dehors de la plage de versions affectées (un négatif là décrit la version, pas l'exploit) — --force le remplace délibérément ;
  • fait pivoter X-Forwarded-For à chaque requête, car le point de terminaison de réinitialisation limite à 10 tentatives et la réponse de limitation est un 400 rapide qui imiterait sinon un négatif ;
  • utilise un oracle H2 (sum(x) sur SYSTEM_RANGE) que le moteur ne peut pas optimiser, et exige que le délai dépasse à la fois un plancher absolu et la propre dispersion temporelle du témoin ;
  • classe une requête limitée, mise en cache, ou en échec de transport comme UNTESTED, pas SAFE.

Reproduction

root@kitploit:~
cd lab
docker compose up -d          # 3300 = v0.63.2 vulnérable, 3301 = v0.63.15 corrigée
# attendre ~90s pour l'initialisation de la base de données au premier lancement
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

Vérifié : v0.63.2 montre un delta de 8+ secondes qui évolue linéairement avec le nombre de lignes de la charge utile (5M→0,85s, 10M→1,96s, 20M→4,61s, 40M→7,97s) ; v0.63.15 ne montre aucune différence.

Utilisation responsable

Testez uniquement les systèmes que vous possédez ou pour lesquels vous êtes explicitement autorisé à évaluer. L'accès non autorisé à des systèmes informatiques est illégal dans la plupart des juridictions. Cet outil détecte la vulnérabilité avec une sonde temporelle bénigne et ne lit, ne modifie, ni n'exfiltre intentionnellement aucune donnée.

Licence

MIT — voir LICENSE.

Télécharger l’outil