---
title: "GitHub MCPの有害なエージェントフローで非公開リポジトリの情報が流出 · DotsAgent"
description: "Invariant Labsは、悪意のある公開GitHub IssueによってGitHub MCPサーバー上のエージェントが誘導され、非公開リポジトリのデータが公開pull requestにコピーされる手法を示しました。"
url: https://dotsagent.io/ja/security/incidents/2025-05-github-mcp-toxic-agent-flow
---

2025年5月26日

# GitHub MCPの有害なエージェントフロー：公開Issue経由で非公開リポジトリの情報が流出

Invariant Labsは、悪意のある公開GitHub IssueによってGitHub MCPサーバー上のエージェントが誘導され、非公開リポジトリのデータが公開pull requestにコピーされる手法を示しました。

## 何が起きたか

2025年5月26日、Invariant Labsは、GitHub MCP serverに関わる「toxic agent flow」と呼ぶ事例を公表しました。攻撃者は公開リポジトリにissueを作成し、エージェント向けの指示を書き込みます。エージェントが後で未解決のissueを読むと、仕込まれたテキストを取り込み、その指示に従います。

エージェントのtokenから、所有者の非公開リポジトリにもアクセスできる場合がありました。issueの指示に従ったエージェントは、非公開リポジトリからデータを取得し、公開リポジトリにpull requestとして投稿しました。その内容は誰でも閲覧できました。

## なぜ成功したか

致命的な三要素がすべて1つのセッションにそろっていました。非公開リポジトリにアクセスできるtoken、公開issueに含まれる信頼できないテキスト、そして情報の持ち出し先となる公開pull requestです。それぞれは単独ならありふれたものです。しかし、組み合わさると、issueを作成できる人なら誰でもtokenが読める情報を読める状態になります。

## 対策

- 公開issueを読むエージェントには、そのリポジトリだけに権限を限定したtokenを割り当ててください。
- 公開リポジトリと非公開リポジトリは、別々のエージェントセッションで扱ってください。
- エージェントが公開リポジトリでpull requestを作成したり、コメントやcommitを行ったりする前に、承認を必須にしてください。
- issueのタイトル、本文、コメントは信頼できない入力として扱ってください。

[危険な3要素を断つ](https://dotsagent.io/ja/security#lethalTrifecta)[最小権限の認証情報を使う](https://dotsagent.io/ja/security#leastPrivilege)[重大な操作には承認を必須にする](https://dotsagent.io/ja/security#humanApproval)

- [EchoLeak：Microsoft 365 Copilotからのゼロクリック情報窃取](https://dotsagent.io/ja/security/incidents/2025-06-echoleak-m365-copilot)

- [MCPツールポイズニング：ツールの説明に隠された指示](https://dotsagent.io/ja/security/incidents/2025-04-mcp-tool-poisoning)

[セキュリティチェックリストを確認する →](https://dotsagent.io/ja/security/checklist)

## 出典

1. [invariantlabs.ai](https://invariantlabs.ai/blog/mcp-github-vulnerability)/blog/mcp-github-vulnerability

AIエージェント開発者向けの独立したリファレンスです。ここに記載されているいずれのベンダーとも提携していません。

© 2026 DotsAgent · 確認日: 2026年10月1日
