那个看起来一模一样的"main"分支
开发者盯着屏幕,看到了熟悉的 "main"。
94个不可见的表意文字空格(Unicode U+3000)藏在后面。人眼识别为"主分支",Shell看到的却是 curl 命令正在外泄 OAuth 令牌。
今年 3 月 30 日,BeyondTrust 研究员 Tyler Jespersen 团队对 OpenAI Codex 发出致命一击。
一个精心构造的 GitHub 分支名,绕过了所有视觉审查,在容器启动瞬间窃取了凭证。OpenAI 将其列为 Critical P1——最高级别安全事件。
但这只是序幕。
九个月
短短 48 小时后,Anthropic 的 Claude Code 源代码意外泄露至公共 npm 仓库。紧接着,Adversa 团队发现:当命令链超过 50 个子命令时,Claude Code 会默默放弃安全检查。为了省点 token 预算,安全规则被直接丢弃。
把时间轴拉长到九个月:
六支独立研究团队, targeting 四大主流工具(Codex、Claude Code、GitHub Copilot、Google Vertex AI),每一击都精准命中同一个死穴——AI 编程代理手中的凭证。
去年 Black Hat USA 2025 的舞台上,Zenity CTO Michael Bargury 用零点击攻击现场劫持了 ChatGPT、Microsoft Copilot、Google Gemini、Salesforce Einstein 和 Cursor。当时观众以为是炫技,如今看来那是预言。
"企业以为他们'批准'了 AI 供应商,但实际上他们只批准了一个界面,而非底层系统。"
—— Merritt Baer,Enkrypt AI CSO,前 AWS Deputy CISO
凭证在界面之下裸奔。 这才是真相。
沙盒纸糊的
Claude Code 的遭遇堪称荒诞三连击。
CVE-2026-25723:通过管道拼接 sed 和 echo,文件写入限制形同虚设。2.0.55 版本修复。
CVE-2026-33068:恶意仓库在 .claude/settings.json 里设置 permissions.defaultMode 为 bypassPermissions,信任对话框直接消失。2.1.53 版本修复。
50 子命令绕过:安全规则在第 51 条命令后停止执行。Anthropic 的工程师为了性能,把安全检查做成了“限时体验”。2.1.90 版本修复。
每次修复都在修补症状,却没人问:为什么 AI 代理能同时拥有写代码的权限和访问生产系统的凭证?
GitHub Copilot 那边更离谱。
Johann Rehberger 藏在 PR 描述里的隐藏指令,能直接修改 .vscode/settings.json 关闭所有确认对话框,获得跨平台 root 权限。
Orca Security 则证明,一个普通的 GitHub Issue 就能操纵 Copilot 读取 /workspaces/.codespaces/shared/user-secrets-envs.json,全程无需用户交互。
Vertex AI 的漏洞带着某种讽刺:默认服务身份(P4SA)的权限大到能读取 Gmail、Drive,甚至触及 Google 内部的 Artifact Registry 供应链仓库。Ofir Shaty 形容这像个“双面间谍”——既访问用户数据,又碰得到谷歌自家基础设施。
每一家厂商都部署了防御。每一家都被绕过。
看不见的内鬼,管不住的身份
问题根本不在代码生成,而在身份治理的真空。
CrowdStrike CTO Elia Zaitsev 在 RSAC 2026 上给出了诊断:“把代理身份重新关联回人类(collapse agent identities back to the human)。”
因为当 AI 代理代替你行动时,它持有的权限往往比你本人还大。Codex 的 GitHub OAuth 令牌能访问你授权的所有仓库;Vertex AI 的 P4SA 能读项目里每一个 Cloud Storage 桶;Claude Code 为了“快”,可以无视你设定的拒绝规则。
IEEE 高级成员 Kayne McGladrey 直言:“它使用的权限远超过它应有的,也超过人类需要的,因为规模和速度的需求。”
但你的 IAM 系统(身份与访问管理)根本看不见这些 AI 代理。CMDB(配置管理数据库)里没有“AI 代理”这个分类,PAM(特权访问管理)平台没接入这些 OAuth 凭证。它们在阴影里运行,拿着钥匙,没人知道它们什么时候开了哪扇门。
Gravitee 2026 年的调查显示,只有 21.9% 的团队用特权访问管理平台接入了 AI 代理的 OAuth 凭证。剩下的 78.1%?他们在裸奔。
72 小时 vs 秒级攻击
Ivanti CTO Mike Riemer 警告:威胁行为者能在补丁发布后 72 小时内完成逆向工程。但如果你的 AI 代理被攻破,攻击窗口不是 72 小时,而是几秒钟。
Sonar 的 2026 年开发者调查显示,25% 的开发者定期使用 AI 代理,64% 已经开始使用。Veracode 测试了 100 多个 LLM,发现 45% 的生成代码样本引入了 OWASP Top 10 漏洞。
一边是疯狂的采用率,一边是失控的权限。
Riemer 说:“在验证之前,我不认识你。” 但现实是,分支名在验证前就跟 Shell 对话了,GitHub Issue 在被人阅读前就指挥了 Copilot。AI 代理的“自动”特性,把“先验证再信任”的安全铁律碾得粉碎。
所以
别等厂商了。他们连自己的代码都管不住(看看 Claude Code 泄露到 npm 这事)。
立即行动清单:
- 盘点你的 AI 代理。Codex、Claude Code、Copilot、Cursor、Gemini Code Assist、Windsurf——列出它们持有的每一个 OAuth 令牌和权限范围。如果你的 CMDB 没有“AI 代理身份”分类,现在创建一个。
- 升级和降级。Claude Code 升级到 2.1.90+,Copilot 确认打了 2025 年 8 月补丁,Vertex AI 迁移到“自带服务账号”模式。然后削减它们的权限——代理不需要读你的 Gmail。
- 把配置文件当敌人。
.vscode/settings.json、.claude/settings.json、分支名、PR 描述——这些都是不可信输入。监控 Unicode 混淆(U+3000)、超过 50 条的命令链,这属于典型的安全/渗透/逆向技术范畴。
- 像管人一样管机器。凭证轮换、最小权限、写代码的代理和部署的代理必须分离。CyberArk、Delinea 这些 PAM 平台今天就能接入 AI 代理的 OAuth 凭证,去用它们。
- 质问供应商。下次续费前,书面要求他们展示:“AI 代理的身份生命周期管理控制,包括凭证范围、轮换策略和权限审计追踪。” 答不上来?这就是你的审计漏洞。
Zaitsev 在 RSAC 给 CISO 的忠告很直白:“你早就知道该怎么做,只是代理让不做的代价变得灾难性。”
那个看起来人畜无害的“main”分支,和后面跟着 94 个隐形字符的恶意分支,在屏幕上长得一模一样。区别在于,一个是信任,一个是掠夺。
当你的 AI 同事比你拥有更高的权限,且没人能监控它在做什么时,谁才是真正的内鬼?
【锐评】:AI 代理不是未来的威胁,而是已经发生的身份治理溃败——我们给机器发了万能钥匙,却忘了给它们上户口。对于这类深度技术话题,云栈社区上也有不少开发者在持续关注与讨论。
参考链接:
https://venturebeat.com/security/six-exploits-broke-ai-coding-agents-iam-never-saw-them