AIアシスタントを活用した開発環境が急速に普及する中、その基盤となるインフラに重大なセキュリティホールが発見されました。Anthropic社が公式に提供するmcp-server-git(Git Model Context Protocolサーバー)に3つの脆弱性が存在し、攻撃者がプロンプトインジェクションを通じて任意のファイル読み取り・削除、さらにはコード実行まで可能であることが明らかになりました。この発見は、AI開発ツールのセキュリティについて深刻な問題を提起しています。
この記事のポイント
- Anthropic公式のMCP Gitサーバーに3つのCVE(パストラバーサル2件、引数インジェクション1件)
- プロンプトインジェクション経由で攻撃可能、AIが悪意あるREADMEを読むだけで発動
- 3つの脆弱性を連鎖させることでリモートコード実行が可能
- 修正版がリリース済み、git_initツールは完全に削除
Model Context Protocol(MCP)とは何か
まず、この脆弱性を理解するために、MCPについて説明しましょう。Model Context Protocol(MCP)は、AIアシスタントが外部ツールやデータソースと安全に連携するための標準プロトコルです。Claude CodeやCursorなどのAI開発ツールで広く採用されており、Gitリポジトリの操作、ファイルシステムへのアクセス、APIとの連携などを可能にします。
mcp-server-gitは、Anthropic社が公式に提供するMCPサーバー実装の一つで、AIアシスタントがGitリポジトリを操作するための機能を提供します。リポジトリの初期化、差分の表示、チェックアウトなどの基本的なGit操作をAI経由で実行できるため、開発者の生産性向上に貢献しています。しかし、この便利さの裏側に、深刻なセキュリティリスクが潜んでいました。
発見された3つの脆弱性の詳細
CVE-2025-68143:git_initのパストラバーサル(CVSS 8.8/6.5)
最初の脆弱性は、git_initツールにおけるパストラバーサル(ディレクトリトラバーサル)です。このツールは新しいGitリポジトリを作成する機能を提供しますが、リポジトリ作成先のパスに対する検証が一切行われていませんでした。攻撃者は「../../」のような相対パスを使用して、意図しないディレクトリにGitリポジトリを作成できます。
これは単なる不便さではありません。任意のディレクトリに.gitフォルダを作成できるということは、そのディレクトリをGit管理下に置き、後続の攻撃の足がかりとすることを意味します。この脆弱性は2025年9月25日のバージョンで修正され、最終的にgit_initツール自体が完全に削除されました。
CVE-2025-68144:git_diffとgit_checkoutの引数インジェクション(CVSS 8.1/6.4)
2つ目の脆弱性は、git_diffとgit_checkout関数における引数インジェクションです。これらの関数では、ユーザーが制御可能な引数がサニタイズされることなく、直接gitコマンドラインに渡されていました。
攻撃者は悪意のある引数を注入することで、意図しないgitコマンドオプションを実行させることができます。例えば、git diffコマンドに対して、ファイル内容を表示させたり、予期しないオプションを有効化させたりすることが可能です。この脆弱性は2025年12月18日のバージョンで、適切な引数検証の実装により修正されました。
CVE-2025-68145:–repositoryフラグのパストラバーサル(CVSS 7.1/6.3)
3つ目の脆弱性は、–repositoryフラグに対する検証の欠如によるパストラバーサルです。このフラグを操作することで、攻撃者はサーバー上の任意のリポジトリに対して操作を実行できてしまいます。
本来、MCPサーバーは特定のリポジトリディレクトリ内でのみ動作するよう設計されているべきですが、この検証がなかったため、システム上の他のGitリポジトリ(機密性の高いものを含む)にアクセスできる状態でした。この脆弱性も2025年12月18日に修正されています。
プロンプトインジェクション経由の攻撃シナリオ
これらの脆弱性の最も恐ろしい点は、「プロンプトインジェクション」を通じて悪用できることです。研究者は次のように説明しています。「これらの欠陥は、AIアシスタントが読み取る内容に影響を与えることができる攻撃者によって悪用される可能性があります。つまり、悪意のあるREADMEファイルがあれば、直接システムにアクセスすることなくこれらの脆弱性を武器化できます。」
具体的なシナリオを考えてみましょう。開発者がAIアシスタントに「このリポジトリの内容を説明して」と依頼したとします。AIは素直にREADMEファイルを読み取りますが、そのREADMEに巧妙に隠された指示が含まれている場合、AIは気づかないうちにその指示に従ってしまう可能性があります。
3つの脆弱性を連鎖させたリモートコード実行
研究者は、これら3つの脆弱性をFilesystem MCPサーバーと組み合わせて連鎖させることで、リモートコード実行を達成できることを実証しました。攻撃チェーンは以下のように動作します。
まず、CVE-2025-68143を利用して、書き込み可能なディレクトリに新しいGitリポジトリを作成します。次に、そのリポジトリの.git/configファイルに悪意のある「cleanフィルター」を書き込みます。Gitのcleanフィルターは、ファイルがステージングされる際に自動的に実行されるスクリプトを定義できる機能です。最後に、git操作をトリガーすることで、cleanフィルターに定義された任意のシェルコマンドが実行されます。
この攻撃が成功すると、攻撃者はサーバー上で任意のコードを実行できるようになり、データの窃取、システムの乗っ取り、さらなる攻撃の足がかり確保など、深刻な被害につながる可能性があります。
実践してみよう
以下のコマンドで、あなたのMCPサーバーが脆弱なバージョンかどうか確認できます。
# mcp-server-gitのバージョン確認
npm list @modelcontextprotocol/server-git 2>/dev/null || pip show mcp-server-git
# 最新バージョンへのアップデート(npm)
npm update @modelcontextprotocol/server-git
# 最新バージョンへのアップデート(pip)
pip install --upgrade mcp-server-git
# MCP設定ファイルの確認(使用中のサーバー一覧)
cat ~/.config/claude/mcp.json 2>/dev/null | grep -A5 "server"
# Git設定ファイル内の不審なフィルター設定を検索
find ~ -name "config" -path "*/.git/*" -exec grep -l "filter\." {} \; 2>/dev/null
必ず最新バージョンにアップデートし、不審な設定がないか確認してください。
セキュリティTips
-
MCPサーバーを常に最新版に保つ: AIツールのセキュリティアップデートは見落としがちですが、今回のような脆弱性は深刻な影響を及ぼす可能性があります。定期的にアップデートを確認し、セキュリティパッチがリリースされたら速やかに適用しましょう。自動アップデートの設定も検討してください。
-
信頼できないリポジトリでのAI使用に注意: AIアシスタントを使用してリポジトリを分析する際は、そのリポジトリの出所を確認しましょう。見知らぬユーザーのリポジトリや、フォークされた怪しいプロジェクトでは、READMEやドキュメントにプロンプトインジェクション攻撃が仕込まれている可能性があります。
-
MCPサーバーの権限を最小限に: MCPサーバーに与える権限は、必要最小限に制限しましょう。ファイルシステムへのアクセス範囲を限定し、サンドボックス環境での実行を検討してください。Docker等のコンテナ技術を活用することで、万が一侵害されても被害を限定できます。
-
Git設定ファイルの変更を監視: .git/configファイルへの予期しない変更は、攻撃の兆候である可能性があります。特にfilter設定やhook設定の追加には注意が必要です。ファイル整合性監視ツールの導入を検討しましょう。
まとめ
今回発見されたmcp-server-gitの3つの脆弱性は、AI開発ツールのセキュリティについて重要な教訓を与えています。便利なAIアシスタント機能も、その基盤となるインフラに脆弱性があれば、攻撃者に悪用される可能性があります。特にプロンプトインジェクション経由の攻撃は、開発者が意識しにくい脅威です。
Anthropic社は迅速に修正版をリリースし、最も危険なgit_initツールを完全に削除する対応を取りました。MCPを利用している開発者は、今すぐ最新バージョンへのアップデートを行ってください。また、今後もAIツールのセキュリティアップデートには注意を払い、信頼できないソースのコンテンツをAIに処理させる際には十分な警戒が必要です。AIの便利さを享受しながらも、セキュリティを犠牲にしないバランスが求められています。
📎 元記事: The Hacker News


コメント