一个GitHubissue就能RCE你的开发机:ClaudeCode和GeminiCLI爆高危漏洞,面试官问你怎么防

admin 2026-08-25 04:42:59 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: ClaudeCode等三大AI编程Agent被曝存在高危RCE漏洞,攻击者可借GitHubIssue触发代码执行与密钥窃取。对此企业需分阶段治理:短期立即升级补丁与轮换凭证;中期实施网络隔离、权限收敛及日志审计;长期须建立安全基线,引入Agent安全网关实现语义级校验拦截,并将AI工具漏洞响应纳入常态化安全运营体系。 综合评分: 90 文章分类: AI安全,安全建设,应急响应,漏洞分析


一个GitHub issue就能RCE你的开发机:Claude Code和Gemini CLI爆高危漏洞,面试官问你怎么防

原创

ladon ladon

306Safe

2026年8月24日 10:57 北京

在小说阅读器读本章

去阅读

2026年8月7日,安全公司 Novee Security 发布了一份炸裂的研究报告:他们对市面上三大 AI 编程 Agent——Anthropic 的 Claude Code、Google 的 Gemini CLI、OpenAI 的 Codex——做了安全测试,结果发现三款产品在默认配置下全部存在远程代码执行(RCE)漏洞

最狠的是 Claude Code:攻击者只需要在一个 GitHub 仓库提一个 Issue,开发者用 Claude Code 处理这个 Issue 时,代码就会被执行,API Key 通过一个公开的下载计数器被悄无声息地窃取。

Gemini CLI 更离谱,工具限制和环境变量隔离全被绕过,CVSS 评分直接 10.0 满分。Codex 则允许通过一个可写的 AGENTS.md 文件劫持后续所有 Agent 运行指令。

这不是理论威胁——开发者每天都在用这些工具处理 GitHub Issue、读取代码仓库、执行命令。攻击面是真实存在的。

面试题

公司开发团队有 50 人在使用 Claude Code、Gemini CLI 等 AI 编程 Agent 工具。这些工具会自动读取 GitHub Issue、执行命令、调用 API。安全团队发现类似工具刚被曝出 RCE 漏洞(通过 GitHub Issue 触发)。请说明你会如何管控这类工具的安全风险,从短期止血到长期架构分别怎么做。

考察点分析

这道题考察三个层面:

① 威胁认知:能否理解 AI 编程 Agent 的攻击面——它不是普通 IDE 插件,而是一个能读外部内容、执行命令、调用 API 的半自主 Agent。输入来源不可控(GitHub Issue、PR、文档都可能被投毒),输出动作有破坏力(RCE、数据外泄)。

② 管控思路:能不能分层次回答——短期止血(限用/禁用/配置加固)、中期管控(网络隔离、权限收敛、审计日志)、长期治理(安全基线、Agent 安全网关、DevSecOps 流程嵌入)。

③ 落地能力:有没有实际操盘感。比如知不知道 Claude Code 的配置文件在哪、怎么限制工具权限、怎么做网络层隔离。纯理论回答和干过活的人,一听就听出来。

参考答案

一、短期止血(24小时内)

① 摸清资产底数

• 统计哪些开发者在用 Claude Code / Gemini CLI / Codex,版本号是什么。可以通过终端进程扫描、VS Code 扩展清单、API Key 使用记录交叉确认。

• 重点排查:是否有 Agent 在处理公开仓库的 Issue/PR(攻击面最大)。

② 版本升级 + 配置加固

• 立即升级到各厂商最新版本。Novee 报告后三家都发了补丁。

• Claude Code:检查 .claude/settings.json,关闭不必要的工具权限(如 shell 执行、文件写入)。

• Gemini CLI:检查环境变量隔离配置,确认 --restricted 模式是否生效。

• Codex:检查 AGENTS.md 文件权限,确保不可被外部写入。

③ API Key 紧急轮换

• 如果有证据表明 Agent 处理过可疑 Issue,立即轮换相关 API Key(Anthropic / Google / OpenAI)。

• 检查 API 使用日志,看有没有异常调用量或未知 IP 调用。

二、中期管控(1-2周)

① 网络层隔离

• AI 编程 Agent 的网络流量走统一出口(代理网关),限制可访问的目标域名。只允许访问 GitHub、API 厂商域名,阻止访问未知域名和 CDN。

• 这样即使 RCE 触发,恶意代码也无法把数据外传——Novee 的 PoC 就是通过公开下载计数器做数据外泄,域名白名单能直接掐断这条路。

② 权限最小化

• Agent 不使用开发者的全量凭证。为 Agent 创建专用 API Key,设置用量上限(spending limit)和权限范围(scoped token)。

• 禁止 Agent 直接访问生产环境凭证(数据库密码、云平台 Key)。Agent 只能访问开发环境资源。

• 代码仓库层面:Agent 使用的 GitHub Token 只给具体仓库的 read/write 权限,不给 org 级权限。

③ 审计日志

• 开启 Agent 的操作日志,记录:每次工具调用(命令、参数、返回值)、每次文件读写、每次网络请求。

• 日志集中到 SIEM,设置告警规则:检测到 shell 命令执行、检测到 curl/wget 外部域名、检测到 API Key 出现在命令参数中。

三、长期治理(1-3个月)

① 制定 AI 编程工具安全基线

• 明确哪些 AI 编程工具允许使用、哪些配置必须开启/关闭、哪些仓库可以被 Agent 访问。

• 形成文档,纳入开发安全规范,新员工入职必须阅读。

• 定期(月度)检查配置漂移,防止开发者私下修改安全设置。

② 引入 Agent 安全网关

• 在 Agent 和外部世界之间部署安全代理层,拦截所有工具调用:命令执行前做沙箱校验,网络请求前做域名检查,文件写入前做路径校验。

• 高风险操作(如删除文件、发送邮件、修改权限)必须人工审批(Human-in-the-Loop)。

③ 建立 AI Agent 漏洞响应流程

• 关注 Novee、KnostSec、PortSwigger 等安全团队对 AI 工具的研究动态。

• 建立内部 CVE 跟踪机制:AI 编程工具有新漏洞 → 24小时内评估影响 → 48小时内完成升级或缓解措施。

• 定期对 AI 编程 Agent 做红队测试,模拟 Issue 投毒、PR 注入等攻击场景。

四、加分项:理解漏洞原理

面试官可能追问”这些漏洞具体怎么触发的”,能答出来就是加分项:

① Claude Code(flag-parsing gap):Claude Code 在解析命令行参数时,对 GitHub Issue 内容中的特殊 flag 格式没有做转义。攻击者在 Issue 正文里写入类似 --exec <malicious_command> 的内容,Claude Code 在处理该 Issue 时把这段内容当成了合法的命令行参数执行。API Key 被拼接到一个公开可访问的下载计数器 URL 中,攻击者通过查看计数器数值即可还原 Key。

② Gemini CLI(CVSS 10.0):Gemini CLI 的工具限制机制(tool restrictions)和环境变量隔离(environment sanitisation)存在逻辑缺陷,攻击者可以通过精心构造的输入同时绕过这两层防护,获得完整的命令执行权限。

③ Codex(AGENTS.md 劫持):Codex 会读取项目根目录的 AGENTS.md 文件作为指令。如果攻击者能通过 PR 或其他方式向该文件写入恶意指令,后续所有使用 Codex 处理该仓库的开发者都会被劫持。

延伸思考

这次漏洞的核心问题不是模型本身不够聪明,而是AI Agent 的工具调用链缺少安全边界。传统软件的安全模型是”用户输入 → 程序处理”,输入和执行之间有明确的代码边界。但 AI Agent 的模式是”外部内容 → LLM 理解 → 工具执行”,LLM 成了一个”翻译层”,它可能把恶意内容翻译成合法的工具调用。

这意味着传统 WAF、代码审计的防护思路不完全适用于 AI Agent。未来的安全架构需要在 LLM 和工具之间增加一层”Agent Firewall”——对每次工具调用做语义级别的安全校验,而不仅仅是规则匹配。这是 AI 安全领域最值得关注的创业方向之一。

参考资料:Novee Security、CyberSec Brief (2026-08-08)、The Record、Daily Security Review


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:306Safe ladon ladon《一个GitHub issue就能RCE你的开发机:Claude Code和Gemini CLI爆高危漏洞,面试官问你怎么防》

评论:0   参与:  0