Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-72898-metabase-sqli — CVE-2026-72898(reset_password 経由の Metabase 未認証 SQLi)向け検出器 + 根本原因分析 | Kitploit
ツール/GitHubGitHub/d-maggipinto/cve-2026-72898-metabase-sqli
脆弱性スキャナー脆弱性分析エクスプロイトウェブセキュリティペネトレーションテスト
GitHubd-maggipinto/cve-2026-72898-metabase-sqli

CVE-2026-72898-metabase-sqli

CVE-2026-72898(reset_password 経由の Metabase 未認証 SQLi)向け検出器 + 根本原因分析

リポジトリを見る
17時間49分前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-72898 — Metabase の認証なしSQLインジェクション(検出器+分析)

CVE CVSS CISA KEV Product Type Auth License

Metabase の POST /api/session/reset_password を介した認証なしSQLインジェクション。 CVSS 10.0、CISA KEV カタログ掲載、実環境で悪用が確認されています。

パスワードリセットリクエストボディ内の未宣言フィールドが、検証済み識別子ではなく HoneySQL 構造としてアプリケーションデータベースのユーザー検索に到達します。 JSONオブジェクトのキーは Clojure のキーワードになるため、{"raw": "<SQL>"} は HoneySQL の :raw 句にコンパイルされ、出力されます — Metabase アプリケーションデータベースに対する任意のSQLが、認証なしで実行可能です。

そのまま、パラメータ化されずに

このリポジトリには、検出器(ブラインド型・時間ベースの判定ツール)と、ベンダーパッチから導出した根本原因分析が含まれています。防御側が自社の曝露状況を検証するため、またセキュリティ研究者がこのバグを研究するために意図されています。データの窃取や、武器化された管理者乗っ取りエクスプロイトの提供は行いません。

  • cve-2026-72898.py — バージョンゲート付き・フェイルクローズ型検出器(VULN / SAFE / UNTESTED)
  • TECHNICAL.md — v0.63.2 → v0.63.15 パッチ差分からの完全な根本原因分析
  • lab/docker-compose.yml — 再現用の脆弱版+パッチ適用版インスタンス

デモ

CVE-2026-72898 detector demo

検出器は影響を受けるインスタンスに対して VULN、パッチ適用済みインスタンスに対して SAFE を報告します — また、リクエストがスロットリング、キャッシュ、またはアプリに到達しなかった場合は UNTESTED(決して誤った SAFE は返しません)を報告します。録画は asciinema cast としても提供されています。

影響を受ける/修正済みバージョン

ブランチ脆弱修正済み
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

アドバイザリ: GHSA-vwf4-m7j8-wcjf。 影響を受けるバージョンを実行している場合は、今すぐアップグレードしてください — これは実環境で悪用されています。

プリミティブ

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

アプリケーションデータベースでは、次のようになります:

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

このバグはブラインド型です — リセットフローはSQLエラーを飲み込み、すべてのケースで同一の 400 {"errors":{"password":"Invalid reset token"}} を返します — そのため検出器は タイミングオラクルを使用します。完全なデータフローとパッチ差分については TECHNICAL.md を参照してください。

使用方法

root@kitploit:~
python3 cve-2026-72898.py https://metabase.example.com                    # H2 app db (デフォルト)
python3 cve-2026-72898.py https://metabase.example.com --engine postgres  # pg_sleep オラクル
python3 cve-2026-72898.py https://metabase.example.com --json --trials 5

終了コード 0 = VULN、1 = SAFE または UNTESTED。

フェイルクローズする理由

判定は VULN / SAFE / UNTESTED — 「おそらく問題なし」はありません。このツールは:

  • 影響を受けるバージョン範囲外では発火しません(そこでの否定はエクスプロイトではなくバージョンを表します)— --force で意図的に上書き可能;
  • リセットエンドポイントは10回の試行でスロットリングされ、そのスロットル応答は否定を模倣する高速な400であるため、リクエストごとに X-Forwarded-For をローテーションします;
  • エンジンが最適化で除去できないH2オラクル(SYSTEM_RANGE 上の sum(x))を使用し、遅延が絶対的な下限とコントロール自身のタイミングばらつきの両方をクリアすることを要求します;
  • レート制限、キャッシュ、またはトランスポート失敗のリクエストを SAFE ではなく UNTESTED に分類します。

再現

root@kitploit:~
cd lab
docker compose up -d          # 3300 = 脆弱 v0.63.2, 3301 = 修正済み v0.63.15
# 初回DB初期化に約90秒待機
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

検証済み: v0.63.2 はペイロードの行数に比例して線形にスケールする8秒以上の差分を示します(5M→0.85秒、10M→1.96秒、20M→4.61秒、40M→7.97秒); v0.63.15 は差分を示しません。

責任ある使用

所有しているシステム、または明示的に評価を許可されたシステムのみをテストしてください。コンピュータシステムへの不正アクセスは、ほとんどの法域で違法です。このツールは良性のタイミングプローブで脆弱性を検出し、データの読み取り、変更、窃取を意図的に行いません。

ライセンス

MIT — LICENSE を参照してください。

ツールをダウンロード