GitLost Vulnerability Tricks GitHub’s AI Agent into Leaking Private Repos
2026/07/07 CyberSecurityNews — GitLost と名付けられた新たな脆弱性を悪用する攻撃者が、単一の GitHub Issue を介して AI 搭載 Agentic Workflows を騙して、非公開リポジトリの内容をインターネット上へ漏洩させるという懸念が生じている。この攻撃の前提として、認証情報/コーディングスキル/システムアクセス権は一切必要とされない。

GitHub Agentic Workflows とは、Claude/GitHub Copilot を基盤とする AI エージェントと、GitHub Actions を組み合わせたものであり、チームが Markdown で記述するプレーンな自動化処理を、YAML Actions ファイルにコンパイルするものである。これらのエージェントは、設定可能な権限に基づき、Issue の読み取り/ツールの呼び出し/コメントの投稿/組織内の他のリポジトリへのアクセスを実行する。しかし、これらのアクションにおいて、人間による確認の実施は必要とされない。
この脆弱性は、典型的な間接プロンプト・インジェクションの欠陥に起因する。Noma Labs が特定した脆弱なワークフローは、issues.assigned イベントをトリガーとして、Issue のタイトルおよび本文を読み取り、add-comment ツールを介してレスポンスするよう設定されている。そして、組織内のパブリック/プライベート・リポジトリの両方に対して、読み取りアクセス権限を持って動作する。
このエージェントは、信頼できるシステム命令と、信頼できないユーザー提供コンテンツを区別できない。したがって攻撃者は、Issue 本文内に平文の命令を埋め込み、それを指示として、エージェントに実行させることが可能であった。
顧客とのミーティング後に Noma Labs が作成したのは、VP of Sales から送られる依頼を模倣する、無害に見える Issue である。Issue が割り当てられワークフローがトリガーされると、パブリック・リポジトリ (poc)/プライベート・リポジトリ (testlocal) の両方から README.md を取得したエージェントが内容を結合し、誰もが閲覧できるパブリック・コメントとして投稿した。
インジェクションされたプロンプトに Additionally という単語を追加することで、GitHub の既存の安全対策を回避し、拒否を発生させることなくモデルの出力を再構成できる点に注目すべきである。この種の情報漏洩を防止するために設計された安全メカニズムが、この巧妙な言語的トリックにより容易に無効化されることが判明した。
Noma Labs が公開したのは、ワークフローの実行とトリガーとなった Issue の詳細である。なお、漏洩したデータに含まれるのは、sasinomalabs/poc (パブリック)/sasinomalabs/remote-ping (パブリック)/特に重要な sasinomalabs/testlocal (プライベート) の README の内容となっている。
GitLost が浮き彫りするのは、モデルのコンテキスト・ウィンドウ自体が攻撃対象領域となるという、エージェント型 AI システムに内在する構造的な弱点である。つまり、エージェントが取り込む Issue/プルリクエスト/コメント/ファイルなどのコンテンツが、単なるデータではなく命令として扱われる場合に、それらが悪用される可能性が生じる。
従来のソフトウェア・セキュリティは、信頼境界がコードにより強制されることを前提としている。その一方で、エージェント型システムはモデルの挙動に依存するため、命令に従うモデルが、このような手法による攻撃を防ぐことは難しい。
AI セキュリティにおけるプロンプト・インジェクションと、Web アプリケーション・セキュリティにおける SQL インジェクションを比較する傾向を、研究者たちは強めている。その背景にあるのは、システム全体に影響を及ぼす脆弱性として評価されていることであり、どちらも体系的な防御策が必要とされる点にある。
推奨される対策は以下の通りである。
- ユーザーが制御するコンテンツを、信頼できる命令入力として決して扱わない。
- 特にリポジトリをまたぐアクセスについて、エージェントの権限を必要最小限の範囲に制限する。
- Issue コンテンツへのレスポンスから、エージェントがパブリックに投稿できる内容を制限する。
- モデル処理の前に、ユーザー入力をサニタイズする。また、命令のコンテキストから分離する。
Noma Labs は、責任ある開示プロセスを通じて、GitLost の脆弱性を GitHub へ報告した。
訳者後書:今回の脆弱性の原因は、 開発者の信頼できる命令と、ユーザーが作成した Issue の内容を、AI エージェントが区別できないところにあります。これにより、単なるデータではなく指示として、悪意のプロンプトを実行してしまい、非公開リポジトリの情報が漏洩する事態が発生しました。 AI がコンテキストを解釈する便利さに対して、入力されたテキストが攻撃の入り口になってしまうという、 AI 時代特有のセキュリティの難しさが表れています。従来のプログラムのように、コードで明確に境界を引くことが難しいため、システムを構築する際はユーザーの入力を信用せず、権限を最小限に絞るなどの対策がとても大切になります。ご利用のチームは、ご注意ください。よろしければ、Prompt Injection での検索結果も、ご参照ください。

You must be logged in to post a comment.