GitLost、公開Issueからprivate repoへ届くAI agent権限の弱点

Noma SecurityのGitLostは、GitHubのagentic workflowで起きうる権限境界の問題を具体的に示している。攻撃者が同じ組織の公開repositoryに細工したIssueを投稿し、AI agentがそれを作業文脈として読む。agentにprivate repositoryへ触れる権限がある場合、その公開入力が本来見えない情報の取得につながる、という構図だ。

ここで重要なのは、LLMが文章にだまされるという一般論だけではない。信頼できないテキスト、tool use、広すぎるrepository権限が同じ経路に置かれると、古典的なCI設定ミスに近い事故になる。secretを見られるjobを信頼できないPRで走らせれば危ないのと同じで、private codeへ届くagentが公開Issueを命令として扱えば漏えい経路ができる。

HNの議論は、GitHub側の脆弱性なのか、利用者側の権限設計ミスなのかに分かれた。公開repositoryのイベントからprivate repository権限を持つagentが動く構造を問題視する声もあれば、機密アクセスを持つ自動化に公開コンテンツを読ませた設定が危険だという見方もあった。結論としては、agentの権限は導入者単位ではなく入力元ごとに分ける必要がある。

実務では、Issue、コメント、Markdown、ログ、チケットを外部入力として扱うのが出発点になる。public triggerからprivate repositoryへの読み取りを切り離し、cross-repo accessには承認を挟み、tool callの監査ログを残す。agentは作業を助ける存在であって、既存のアクセス制御を薄くする抜け道であってはならない。