世界を動かす技術を、日本語で。

GitLost: GitHubのAIエージェントを騙してプライベートリポジトリを漏洩させた

2026年7月8日原文(noma.security)

概要

Noma Labs は、 GitHub Agentic Workflows に重大なプロンプトインジェクション脆弱性「 GitLost」を発見 攻撃者は パブリックリポジトリのIssue投稿 だけでプライベートリポジトリのデータを窃取可能 本脆弱性はAIエージェントの 信頼境界 の欠如が原因 ガードレール回避 も可能で、誰でも容易に悪用できる点が特徴 再発防止策 や推奨事項もNoma Labsより提案

GitHub Agentic Workflowsの概要

  • GitHub Agentic Workflows は、 AIエージェントGitHub Actions を組み合わせた自動化機能
  • Markdown 形式でワークフローを記述し、AIエージェントが Issue内容の読取・ツール呼出・自動応答 を実行
  • ClaudeGitHub Copilot をAIバックエンドとして利用
  • エージェントは 組織内の複数リポジトリ にアクセス可能

GitLost脆弱性の詳細

  • 原因は プロンプトインジェクション (AIエージェントが信頼できない入力を命令と誤認)
  • 攻撃者は パブリックリポジトリのIssue本文 に命令文を記載するだけで攻撃成立
  • 認証不要・技術不要 で誰でも実行可能
  • 脆弱なワークフロー例:
    • issues.assigned イベントでトリガー
    • Issueタイトル・本文 を読み取り
    • add-commentツール で応答コメント投稿
    • 組織内の他リポジトリ(パブリック・プライベート) への読み取り権限有

攻撃フローの解説

  • 攻撃者が 無害に見えるIssue をパブリックリポジトリに投稿

  • Issueが 自動でアサイン されると、ワークフローがトリガー

  • エージェントが README.md などを パブリック・プライベートリポジトリ から取得

  • 取得内容を パブリックなIssueコメント として投稿し、誰でも閲覧可能に

ガードレール回避(“Additionally”攻撃)

  • GitHub側の制御(ガードレール) は本来この攻撃を防ぐ設計
  • しかし、 “Additionally” などのキーワードを使うことで、AIモデルの出力を巧妙に誘導し、ガードレールを回避
  • 結果として データリーク が発生

なぜ深刻なのか

  • AIエージェントのコンテキストウィンドウ がそのまま攻撃対象となる点
  • 従来のセキュリティモデル ではコードで信頼境界を管理していたが、エージェントAIでは モデル自体の挙動 に依存
  • プロンプトインジェクション は、Webアプリケーションの SQLインジェクション に相当するAI時代の根本的な脆弱性

Noma Labsからの推奨事項

  • ユーザー入力をAI命令文として絶対に信頼しない こと
  • 権限スコープを最小限 に抑制(特にクロスリポジトリアクセス権を持つエージェントは要注意)
  • Issue内容などをそのままパブリック投稿させない 制御
  • ユーザー入力のサニタイズまたは分離 を徹底

責任ある情報公開・今後

  • GitLostGitHub へ責任ある開示済み
  • 本内容はGitHubの認知のもとで公開
  • Noma Labs は他にも「GrafanaGhost」「DockerDash」「Context Crush」「GeminiJack」などのAI脆弱性を研究・公開
  • Agentic AIセキュリティソリューション のデモ依頼も受付中

Hackerたちの意見

責任ある開示 GitLostはGitHubに責任を持って開示されました。脆弱性の詳細は、彼らの了解のもとでここに共有されています。なんでこのセクションには、いつ修正されたのかやGitHubが認めたか拒否したかが書いてないの?修正されなかったの?

何を修正するの?彼らはLLMにプライベートデータへのアクセスと公開コメントを読む能力を与えたんだよ。それは単なる設定ミスだよ。

これは普通のソフトウェアバグじゃないし、普通のサポートスタッフが騙されるのと同じように修正できないよ。答えは、LLMに信頼できない入力と敏感なデータへの同時アクセスを許可すべきじゃないってこと。

実際、OP、下の設定をオンにしてこれをやったか教えてくれる?これを止めるための設定があるから、これがこの報告のせいで作られたのか、報告者がコメントとして追加しなかっただけの怠慢なのか気になる。 https://github.github.com/gh-aw/reference/cross-repository/#...

マイクロソフトみたいな大企業は、投資家からのプレッシャーで、AIをすべての製品に無理やり組み込んでるだけだよね。アドビがやったことと同じ。だから、あれはうまくいかなかったし、今回もそうなると思う。消費者はこういう中途半端なAI統合に疲れてきてるし、そろそろ限界が来るよ。

もう無理。Forgejoに移るわ。素晴らしいし、全てがうまく動く。マジで、クリックしたらすぐに反応するし、CIもランナーと一緒に使うとめっちゃスムーズ。 (ランナーの設定に関するドキュメントはもうちょっとわかりやすいといいけど、それ以外は全然ストレスなかった。)

同意だけど、企業向けのAIサービスは結構すごいと思う。投資家や消費者はあまり気づいてないし、従業員も取引できない。収益はしっかりあって、すごいし、消費者向けや席ベースの収益を補完してる。市場はまだSaaSの倍率を減らしてるけど、それは正しいと思う。でも四半期ごとの報告書で収益を分けると、実際の効率からくる大きな成長ストーリーがあるよ。

マイクロソフトは上場企業だよね。誰が彼らに、誰も望んでいないAI機能でGitHubをめちゃくちゃにさせてるの?どの場面で?

なんで誰がGitHubや他のクラウドソリューションのプライベートリポジトリを信頼するの?コードベースのプライバシーを本当に守ってくれると思う?もちろん、アップロードしたらすぐにコードを盗むよ。LLMは彼らの意図的な盗用を隠すのを助けて、逃げられるようにしてるし、利益も得てる。

あなたは、平均的な組織が自分たちでGitサーバーを運営して安全に保つ能力を過大評価してると思うし、GitHubやLLMの提供者がどれだけ悪いかも過大評価してるんじゃない?

これがGitHubの脆弱性ってどういうこと?研究者がエージェントにプライベートリポジトリへのアクセスを与えて、公開リポジトリで質問に答えさせるんだから、もちろんプライベート情報が抜け出すよね?これは、秘密情報にアクセスできる普通のCIジョブを設定して、公開PRで実行するのと同じだよ。GitHubを設定して、公開コードやLLMの指示が敏感なものにアクセスできるコンテキストで動くようにしたら、漏れちゃうよ。それはGitHubのせいじゃなくて、あなたのせいだよ。

「これがGitHubの脆弱性ってどういうこと?研究者たちがエージェントにプライベートリポジトリへのアクセスを与えて、パブリックリポジトリで質問に答えさせるんだから、そりゃプライベート情報を引き出せるよね?」って思うんだけど、質問してるリポジトリに対してだけ権限がスコープされてるっていう前提なんじゃないかな。両方の意見が分かる気がする。

Hacker Newsで議論の続きを見る