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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-33980 — KQLインジェクションがadx-mcp-serverのtable_nameパラメータ経由で発生 — CVSS 8.8 | Kitploit
ツール/GitHubGitHub/romain-deperne/cve-2026-33980
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用クラウドセキュリティデータベースセキュリティ
GitHubromain-deperne/cve-2026-33980

CVE-2026-33980

KQLインジェクションがadx-mcp-serverのtable_nameパラメータ経由で発生 — CVSS 8.8

リポジトリを見る
3ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-33980 — adx-mcp-server の table_name パラメータにおける KQL インジェクション

深刻度: 高 (CVSS 8.8) CWE: CWE-943 — データクエリロジックにおける特殊要素の不適切な無害化 影響を受けるバージョン: adx-mcp-server <= 0.1.0 (コミット 48b2933) 勧告: GHSA NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-33980

TL;DR

adx-mcp-server の3つの MCP ツールは、table_name パラメータを f-string を介して KQL (Kusto クエリ言語) クエリに直接挿入します。攻撃者またはプロンプトインジェクションを受けた AI エージェントは、Azure Data Explorer クラスター内の任意のテーブルを読み取り、管理コマンド (.drop table) を実行したり、任意の分析クエリを実行したりできます — 「安全な」メタデータツールと生の execute_query ツールの間の信頼境界をバイパスします。

発見の経緯

awesome-mcp-servers リストを調べて、クラウドデータプラットフォームをラップする MCP サーバーを特に探していました — これらは AI エージェントにデータベースへの直接アクセスを提供するように設計されており、MCP ツールのパラメータは攻撃者が完全に制御できるため (信頼できないデータを処理する LLM は、悪意のあるツール引数を渡すようにプロンプトインジェクションされる可能性があります)、リスクが高いからです。

adx-mcp-server が目に留まりました: エンタープライズ環境で使用される Kusto ベースの分析プラットフォームである Azure Data Explorer をラップしています。server.py を開き、ツールパラメータを含む f-string を検索しました。30秒で3件ヒットしました: f"{table_name} | getschema"、f"{table_name} | sample {sample_size}"、f".show table {table_name} details"。

興味深い点は信頼境界のバイパスです: サーバーは生の execute_query ツール (MCP クライアントが人間の承認を要求する可能性がある) と、これらの「安全な」メタデータ検査ツール (自動承認される) の両方を公開しています。メタデータツールを介したインジェクションにより、クライアントが適用する承認ポリシーをバイパスできます。これがこの問題を「インジェクションバグ」から実際のセキュリティ境界違反に押し上げた理由です。

KQL のコメント構文 (//) により、バイパスは簡単でした — // を追加して元のクエリの残りをコメントアウトし、任意のクエリを実行します。

影響を受けるコンポーネント

ファイル: src/adx_mcp_server/server.py

root@kitploit:~
# 行 228 — get_table_schema
query = f"{table_name} | getschema"

# 行 248 — sample_table_data
query = f"{table_name} | sample {sample_size}"

# 行 268 — get_table_details
query = f".show table {table_name} details"

3つすべてが MCP ツールの引数から table_name を検証なしで直接 client.execute(config.database, query) に渡します。

根本原因

KQL では | によるクエリ演算子のパイプと、. で始まる管理コマンドの実行が可能です。// 文字は行コメントを開始します。これにより、f-string の挿入が簡単に可能になります:

  • f"{table_name} | getschema" → | project Secret // を追加して | getschema をコメントアウト
  • f".show table {table_name} details" → \n.drop table を注入して管理コマンドを連鎖

生の execute_query ツールを超えて重要である理由: MCP クライアントは「安全な」読み取り専用ツール (自動承認) と生の実行ツール (確認が必要) を区別することがよくあります。インジェクションは「安全な」メタデータツールを標的とし、承認境界をバイパスします。

PoC

完全なデモについては poc.py を参照してください。主要なペイロード:

root@kitploit:~
# get_table_schema によるデータ窃取
# f"{table_name} | getschema" は次のようになる:
# "sensitive_data | project Secret, Password | take 100 // | getschema"
# → // が "| getschema" をコメントアウト; クエリは sensitive_data の列を読み取る
table_name = "sensitive_data | project Secret, Password | take 100 //"

# get_table_details による破壊的な管理コマンド
# f".show table {table_name} details" は次のようになる:
# ".show table users details\n.drop table critical_data details"
table_name = "users details\n.drop table critical_data"

MCP ツール呼び出し:

root@kitploit:~
{"name": "get_table_schema", "arguments": {"table_name": "sensitive_data | project Secret, Password | take 100 //"}}
{"name": "get_table_details", "arguments": {"table_name": "users details\n.drop table critical_data"}}

影響

  1. データ窃取 — Azure Data Explorer データベース内の任意のテーブルを読み取る
  2. データ破壊 — .drop table、.drop extents などの管理コマンド
  3. プロンプトインジェクションの増幅 — ADX 内で攻撃者が制御するデータを処理する AI エージェントは、悪意のある table_name 値を渡すように操作され、プロンプトインジェクションを完全なデータアクセスに変える可能性があります

タイムライン

  • 発見: 2026-03-xx
  • 報告: GHSA プライベート勧告
  • CVE 公開: CVE-2026-33980
ツールをダウンロード