概要
- Invariant がGitHub MCP統合に深刻な脆弱性を発見
- 攻撃者が 悪意のあるGitHub Issue を使い、プライベートリポジトリのデータ漏洩を誘発
- Toxic Agent Flow と呼ばれる新たな攻撃手法
- 既存のモデルアラインメントや一般的な防御策では防げない
- 対策として 権限制御 と 継続的なセキュリティ監視 が推奨
GitHub MCP統合の重大な脆弱性:Toxic Agent Flow攻撃
- GitHub MCP統合 (14,000スター超の人気プロジェクト)にて発見された脆弱性
- 攻撃者は パブリックリポジトリ に悪意のあるIssueを作成し、エージェントを誘導
- エージェントがIssueを参照するだけで プロンプトインジェクション が発生
- プライベートリポジトリから機密情報を パブリックリポジトリのPR として漏洩
- Invariant の自動セキュリティスキャナーが初めて検出した事例
攻撃シナリオ
- ユーザーは Claude Desktop などのMCPクライアントを使用
- 2つのリポジトリを所有:パブリック用とプライベート用
- 攻撃者がパブリックリポジトリに プロンプトインジェクション を含むIssueを投稿
- ユーザーが「open issuesを見て」とエージェントに依頼→攻撃が発動
- エージェントが プライベート情報 をPRとしてパブリックに投稿、攻撃者が閲覧可能
実証デモ
- ukend0464/pacman (パブリックリポジトリ)と複数のプライベートリポジトリを用意
- パブリックリポジトリに 悪意のあるIssue を設置
- Claude 4 Opusを使い、ユーザーの一言で攻撃成立
- 「Always Allow」設定のユーザーは特に危険
- プルリクエスト経由で 個人情報・機密情報 が流出
Toxic Agent Flowの検出と対策
- この攻撃は MCPツール自体の脆弱性ではなく、エージェントシステムの設計上の問題
- 信頼できるツール でも、外部プラットフォーム経由で情報汚染が可能
- 手動の分析は困難で非効率、 Invariantの自動検出ツール が有効
- MCP-scan や Guardrails などの専用スキャナー・ガードレール導入を推奨
主な対策
- きめ細かな権限制御 の実装
- エージェントがアクセスできるリポジトリを 最小限 に限定
- Invariant Guardrails のような動的コンテキスト制御の導入
- 例:1セッションで1リポジトリのみアクセス許可するポリシー
- 継続的なセキュリティ監視
- MCP-scan のプロキシモードでリアルタイム監査
- 監査証跡の確保、攻撃兆候の早期発見
モデルアラインメントだけでは防げない理由
- Claude 4 Opus のような高度なAIモデルでも、この攻撃には無力
- 一般的なプロンプトインジェクション検出器も 検知困難
- セキュリティは システムレベル での実装が必須
- モデル単体の安全性だけでは 運用環境ごとの脅威 に対応できない
結論・今後の展望
- GitHub MCPサーバーを利用するすべてのエージェントが 潜在的な被害対象
- 類似の攻撃は GitLab Duo など他の開発ツールでも報告
- セキュリティスキャナー や ガードレール の導入が急務
- インシデント未然防止のため、 Invariant の早期アクセスプログラム参加を推奨
参考・連絡先
- 詳細・セキュリティ診断依頼は [email protected] まで
- 関連情報:simonwillison.net/2025/May/26/github-mcp-exploited/
著者: Marco Milanta、Luca Beurer-Kellner