TITLE

「GitLost」——公開Issueの一言がAIエージェントの境界を越えた

投稿日:2026.07.09

CATEGORY

  • AI開発
「GitLost」——公開Issueの一言がAIエージェントの境界を越えた

GitHubが提供を始めた「GitHub Agentic Workflows」——GitHub Actions(リポジトリのイベントに応じて処理を自動実行するGitHubの自動化基盤)にClaudeまたはGitHub Copilotを搭載したAIエージェントを組み合わせ、チームが素のMarkdownで自動化を書ける機能——に、公開Issueへの投稿だけで非公開リポジトリの中身を漏らせる脆弱性が見つかりました。条件は一つだけです。組織内の非公開リポジトリを横断参照できる読み取り権限が、そのエージェントに渡されていることです。この条件さえ揃えば、攻撃者に必要なのは認証もアクセス権も特別なスキルも、何もありません。セキュリティ企業のNoma Security(Noma Labs)がこの脆弱性を「GitLost」と名付け、2026年7月6日に公表しています。

攻撃の仕組み:公開Issueに書くだけ

GitLostの手口はこうです。攻撃者は、対象組織が所有する公開リポジトリにGitHub Issueを作成し、本文に自然言語で悪意ある指示を書き込みます。GitHub Agentic Workflowsのエージェントは既定では読み取り専用ですが、Noma Securityが調べた設定では、同一組織内の複数リポジトリ(非公開のものを含む)を横断して参照させる目的で、エージェントに読み取り権限のトークンが付与されていました。GitLostは、この「業務上の目的で付与されていた横断アクセス」をそのまま悪用します。

「Additionally」の一言でガードレールを抜けた

Noma Securityのテストで最も印象に残るのは、ガードレールを破った手口の単純さです。Issue本文の悪意ある指示の直前に「Additionally(追加で)」という一語を置くだけで、モデルはそれを「拒否すべき新規の指示」ではなく「元のタスクに続く追加タスク」として処理し、ガードレールを通過させてしまいました。

GitLostの攻撃の流れ:公開Issue投稿からAdditionallyでのガードレール突破、横断トークンでの非公開リポジトリ参照、公開Issueコメントへの漏洩までの4ステップ図

実際に何が漏れたか

この手口によって、非公開リポジトリのREADME.mdの内容が、攻撃者が作成した公開リポジトリのIssueコメント欄に投稿されました。Issueコメントは誰でも閲覧できる場所です。認証もアクセス権も持たない第三者が読める状態に、非公開情報が置かれたことになります。

GitHubの対応は、報告から2日経っても止まったまま

Noma Securityは責任ある開示の手順に沿ってGitHubに報告しました。The Registerの7月7日付の報道によると、GitHub側が提案した対策は「APIキーなどをリポジトリ間で共有する際の運用を変えるようユーザーに促すドキュメントの注記」でした。しかし7月8日時点で、そのドキュメントの追記すら実装されていません。The RegisterがGitHubに取材を申し込んでも回答はなかったと報じられています。脆弱性そのものを塞ぐコード修正がリリースされたという情報は、現時点でありません。

ベンダー側の対応が止まっているこの状況で、Noma Securityは利用者側で取れる対策を3つ挙げています。(1)エージェントに付与するトークン・権限は必要最小限にする、(2)エージェントが公開できる内容を制限する、(3)Issue本文のようにユーザーが制御可能なコンテンツを、AIモデルへの「信頼できる指示」として扱わない。ベンダーの修正を待つだけでなく、自社側で防げる範囲から手を打つ必要があることを、この2日間の停滞が示しています。

企業が持ち帰るべき4点

一言で言うと、GitLostが突きつけているのは「AIエージェントに渡す入力は、すべて指示になり得る」という原則です。Noma Securityの3つの推奨を出発点に、自社でAIエージェントの導入・運用を検討する担当者が押さえておくべき点を4つに絞ります。

信頼境界の設計。どこまでが信頼できる領域で、どこからが外部由来の入力かを、最初にはっきりさせておく必要があります。公開Issueの本文は誰でも書き込める外部入力であり、社内の指示と同列に扱ってはいけません。

最小権限。エージェントに渡すトークンや権限は、そのタスクに必要な最小限にとどめる——単純な話に聞こえますが、GitLostはこれが破られた実例です。複数リポジトリを横断参照させる業務上の目的で付与されたトークンが、結果的に非公開リポジトリへのアクセス経路を開いてしまいました。

ここが一番見落とされがちだと私は思うのですが、ユーザー入力を指示として扱わないという点も欠かせません。Issue本文やフォーム入力のようにユーザーが制御できるコンテンツを、AIモデルへの「信頼できる指示」として渡さないことです。Noma Securityも、こうした入力は指示のコンテキストから分離するか、サニタイズ(危険な要素を取り除いて無害化する処理)してから渡すよう推奨しています。

監視・ログ — エージェントが何を読み、何を外部に出力したかを追える状態にしておくことです。GitHubの対応が2日経っても止まっている今回のケースは、ベンダーの修正を待つだけでは自社は守れないことを示しています。想定外の出力(非公開情報の公開コメントへの投稿)が起きた時に自社側で早期に気づける仕組みがなければ、被害は気づかれないまま広がります。

まとめ

私はGitLostの本質を、AIモデルの弱さの問題としてでなく、権限設計の問題として読んでいます。「Additionally」の一語で抜けられたガードレールは確かに脆く見えますが、そもそもエージェントが非公開リポジトリを横断参照できる権限を持っていなければ、漏れる情報は存在しませんでした。便利な自動化ほど、境界の設計をサボると牙を剥きます。あなたの組織でAIエージェントを業務に組み込むなら、私はまず「エージェントに渡している権限を全て書き出し、本当に必要な最小限か」を確認するところから始めることを勧めます。


出典

※ この記事は AI を使用しています。Leadeas が自社開発した AI エージェント基盤で下書きを作成し、人間のレビューを経て公開しています。AI ネイティブ開発会社として自社の技術をそのまま実演する目的で、この手法を用いています。(詳しくは AI 利用ポリシー)

AI

AI導入やシステム開発の ご相談を承っています。

お気軽にお問い合わせください