7月6日,安全公司 Noma Security 甩出一个挺唬人的标题:GitHub 的 AI agent,被一个任何人都能提交的公开 issue,骗着把私有仓库的内容吐了出来。这事很快在 Reddit 的几个安全板块转开,标题一个比一个耸动。但把 Noma 那篇原文翻到底,你会发现正文实际能读到的,只有一堆 cookie 政策模板——没有攻击步骤,没有 payload,没有时间线,连 CVE 编号都没提。这不是说这事是假的,而是说,现在能验证的东西,比标题传达的少得多。
这篇东西真正有意思的,不是「AI 又出事了」这种猎奇结论,而是它撞上了两个更值得琢磨的问题:GitHub 给 agent 设的护栏到底挡没挡住,以及网上流传的细节里,有没有把别的事故安到这次头上。
发生了什么,谁在传
Noma 的主张很直白:一个公开、任何人可提交的 GitHub issue,能把组织里的 Agentic Workflow 带偏,让它把私有仓库的内容泄露出去。Reddit 上 r/netsec 出现了对应的讨论帖,随后被 r/pwnhub、r/StopBadBots、r/PrivatePackets 等好几个板块接力转发,标题一个比一个直给。但 Hacker News 上没找到专门讨论这次事件的帖子,搜「GitLost」只碰到一个无关的 .gitignore 生成器项目。除了 Noma 官网,threatlandscape.io 上也有一篇同名分析,算是二次转载。
传播速度和披露深度不成正比,这本身就是个信号:社区在意的是「AI agent 权限越界」这个大问题,而不是这一次具体怎么做到的。
GitHub 给 agent 设的护栏,理论上有四层
按官方文档,Copilot coding agent 的权限模型不是空手上阵:出站网络受防火墙和白名单限制,组织和仓库管理员能按仓库整体关掉 agent,访问私有 package、MCP server 这类额外资源需要显式授权,agent 生成的代码变更还要过一遍安全扫描。
如果 Noma 的说法成立,问题就该落在这四层里到底是哪层失守——是被绕过了,还是压根没配置。这一点,目前公开材料还回答不了。Reddit 上不少评论者的判断更直接:这不是一次性 bug,而是结构性的 prompt injection 问题,只要 agent 拿着较宽的跨仓库读取权限,类似绕过就有可能重演,甚至有人说绕过手法「trivial」,直接质疑现在的护栏有没有实际效果。
别把这次和去年九月那次搞混
检索材料里有一份结果,把 CVSS 9.2、内部 token 泄露这些细节安到了 GitLost 头上——但那其实是 Noma 去年披露的另一起事故,主角是 CrewAI 平台,不是这次的 GitHub Copilot agent。产品不同,泄露的东西不同,时间线也差了近十个月。
这类混淆一旦流传开,蔓延得比原始爆料还快,纠正起来也更麻烦。写这类新闻,先把主体和时间线对齐,是最基本的门槛。
我的判断
这事的本质不是代码里藏了个漏洞,而是权限模型本身的设计问题。agent 之所以好用,就是因为它能跨仓库读、能自动摄入 issue 里的文字去判断该干什么——而这恰恰也是攻击者能利用的入口。功能越强,可被诱导的面就越宽,这是同一枚硬币的两面,不是能靠打补丁彻底解决的事。
古人讲「开门揖盗」,说的就是这个道理:你把钥匙交给了机器人管家,但没设好它不该开哪些门。GitHub 文档里列的四层护栏理论上够用,可一旦企业为了效率把权限开得比需要的更宽,护栏就成了摆设。
护栏是画在文档里的,漏洞是长在权限边界上的。
- 风险.在攻击链条和修复状态都没被证实之前,已经给 Copilot coding agent 开了跨仓库权限的组织,等于把不确定性摆在明面上,值得先收紧一遍权限范围再说。
- 结论.真正该盯的不是这次帖子写没写清楚,而是 GitHub 会不会给出正式回应、有没有分配 CVE、修复节点在哪。
回到开头那份读不出攻击细节的原文——这恰恰提醒一件事:agentic AI 的安全故事,现在大多还停留在标题和社区转发层面。厂商愿不愿意把完整链条摊开讲,可能比这次漏洞本身,更值得接着往下追。
