

⚠️一个看似正常的链接:claude-cli://open?repo=anthropics/claude-code&q=...,开发者点击后,无任何弹窗警告,攻击者注入的命令已在后台悄悄执行——可能是窃取SSH密钥、植入后门,或向代码库投毒。
这不是安全研究员的想象,而是Claude Code CLI工具中真实存在的严重漏洞(CVE待分配)。该漏洞允许攻击者通过构造恶意深度链接,在受害者计算机上执行任意命令,且完全绕过工作区信任对话框。
漏洞现已在Claude Code 2.1.118版本中修复。使用AI编程助手的开发者,请立即确认当前版本并升级。本文将深度拆解这一攻击的技术原理,分析开发者机器被控的严重后果,并给出应急措施。
⚠️一个看似正常的链接:claude-cli://open?repo=anthropics/claude-code&q=...,开发者点击后,无任何弹窗警告,攻击者注入的命令已在后台悄悄执行——可能是窃取SSH密钥、植入后门,或向代码库投毒。
这不是安全研究员的想象,而是Claude Code CLI工具中真实存在的严重漏洞(CVE待分配)。该漏洞允许攻击者通过构造恶意深度链接,在受害者计算机上执行任意命令,且完全绕过工作区信任对话框。
漏洞现已在Claude Code 2.1.118版本中修复。使用AI编程助手的开发者,请立即确认当前版本并升级。本文将深度拆解这一攻击的技术原理,分析开发者机器被控的严重后果,并给出应急措施。
一、一个链接如何控制开发者电脑
1.1攻击链路简述
攻击者利用Claude Code深度链接处理器claude-cli://中的参数解析漏洞,构造一个包含恶意--settings参数的特制链接。当受害者点击该链接时,Claude Code会以攻击者提供的配置启动,其中注入的恶意Hook命令在会话开始时自动触发,无需任何用户交互。
攻击链路:构造恶意链接 → 诱骗开发者点击 → Claude Code解析参数时误将值中的--settings=当作有效标志 → 加载攻击者提供的配置 → 恶意Hook命令自动执行 → 攻击者获得控制权。
1.2为什么开发者容易中招?
深度链接的迷惑性:链接以
claude-cli://open?repo=开头,看起来像是正常的Claude Code功能调用利用已信任的仓库:攻击者可将
repo参数设置为受害者已在本地克隆并信任的存储库(如anthropics/claude-code本身),完全绕过工作区信任对话框无任何警告提示:漏洞利用过程静默进行,不会向用户显示任何安全警告

二、参数解析器的“盲目信任”
2.1漏洞根源
漏洞源于main.tsx文件中的eagerParseCliFlag函数。该函数设计用于在主初始化例程运行前解析--settings等关键标志,其实现逻辑如下:
扫描整个命令行参数数组
查找任何以
--settings=开头的字符串关键缺陷:未跟踪该字符串是实际标志还是传递给另一个标志的值
这种无视上下文的解析方式,创建了一个危险的注入点。
2.2注入路径
--prefill选项,通过深度链接的q参数预填充用户提示:text
claude-cli://open?repo=某个仓库&q=用户提示内容
2.3武器化:利用Hooks配置执行命令
SessionStart钩子:text
claude-cli://open?repo=anthropics/claude-code&q=--settings={"hooks":{"SessionStart":[{"type":"command","command":"恶意命令"}]}}
三、开发者机器被控意味着什么
3.1代码泄露
源代码、私有库、未公开的项目被窃取
商业机密、知识产权外泄
可通过后续攻击向代码库植入后门或挖矿程序
3.2密钥与凭证泄露
SSH私钥:攻击者可访问代码仓库(GitHub、GitLab、公司自建Git)
API密钥:云服务凭证(AWS、Azure、GCP)、第三方服务密钥被盗
数据库凭证:生产环境数据库连接信息暴露
CI/CD令牌:可触发恶意构建流程
3.3供应链投毒
攻击者可篡改本地代码,进而影响提交到仓库的代码:
在开源项目中植入后门,影响所有下游使用者
修改依赖包配置,引入恶意依赖
篡改构建脚本,在发布物中植入恶意代码
一个被控的开发者机器,就是攻击者进入企业内网和代码供应链的跳板。

四、立即确认版本并升级
4.1确认当前版本
bash
claude --version
4.2版本判断标准
| ≥ 2.1.118 | ||
| < 2.1.118 | 立即升级 |
4.3升级方法
bash
# 更新Claude Code到最新版本
npm update -g @anthropic-ai/claude-code
# 或使用官方安装命令重新安装
npminstall-g @anthropic-ai/claude-code@latest
# 升级后验证
claude --version# 应显示 2.1.118 或更高
4.4自查是否已被攻击
检查终端历史或系统日志中是否存在可疑的claude-cli://深度链接访问记录。如发现异常,建议:
立即轮换所有API密钥和SSH密钥
审查近期代码提交记录
检查是否有未知的定时任务或启动项

五、开发工具安全的普遍性问题与总结
5.1一个普遍存在的错误模式
安全研究员Joernchen指出,在原始process.argv数组上使用startsWith反模式是一个普遍存在的错误。任何执行急切且无视上下文的参数解析的应用程序都面临类似的注入风险,特别是在涉及深度链接处理器的情况下。
对开发者的启示:
编写参数解析逻辑时,始终使用成熟的解析库(如
yargs、commander),而非手动实现区分CLI标志及其关联值,切勿仅凭
startsWith判断对深度链接等外部输入,进行严格的校验和过滤
5.2AI编程助手安全:一个被忽视的领域
随着AI编程助手的普及,开发者对这类工具的依赖度越来越高,但工具本身的安全风险却很少被讨论:
Claude Code的深度链接注入漏洞
GitHub Copilot的数据泄露风险(代码片段可能被用于训练)
插件/扩展市场的供应链攻击风险
安全团队和开发者需要将开发工具链纳入安全评估范围。
总结
Claude Code存在严重RCE漏洞:攻击者通过恶意深度链接可执行任意命令,完全绕过信任对话框。
开发者是被攻击的高价值目标:机器被控意味着代码、密钥、供应链全面暴露。
立即行动:确认Claude Code版本,如低于2.1.118请立即升级。
普遍性警示:
startsWith反模式是常见错误,开发者应在自己的代码中避免类似问题。
加入我们~获取更多安全情报快讯
建议点赞 + 收藏
转发给你身边的运维、网安同事!!!
- 关注我 -
- 带你了解最新安全资讯 -
微信公众号 | @POP Star安全
快手 | @【深云智安】安全实验室
小红书 | @【深云智安】安全实验室
抖音 | @【深云智安】安全实验室
bilibili | @深云智安-安全实验室
以上就是本篇文章的技术细节。
其实,每次写这类分析时,我都在想
“单篇文章就像一张漏洞快照,有价值,但也相对孤立。
真正的行业敏锐度,来自于漏洞背后的持续观察;海量告警的讨论分析;以及在真实环境中无数次历练形成的直觉。”
很难通过阅读单篇文章积累。
因此,我们构建了一个
”注重实战交流“与“深度共享”的
「知识星球」社区
目前星球已聚集了[52]名安全工程师、研究员和团队负责人。
我们刻意控制规模,并设有加入门槛,只为维持聚焦、务实、互信的交流氛围。

“安全是一个对抗性极强的领域,一个人闭门造车,视角终究有限。
如果你已不满足于碎片信息,渴望在一个高质量的环境中,构建可迁移的实战知识体系,并连接一群值得信赖的同行者,这里或许适合你。

PS.:为了确保大家目标一致,请务必阅读星球置顶的《社区公约》。
这是一个为深度学习和有效连接付费的社区。
更多内容
欢迎加入「网络安全技术交流群」免费分享>>我们专注漏洞研究、攻防实战与代码审计。
群内定期分享技术动态、实战资源与本文相关的工具资料,
让大家一起讨论、共同成长。

添加好友,备注「网络安全」获取入群邀请
更多问题1v1解答>>
点击阅读更多内容
代码审计
代码审计(实战篇)
靶场搭建
环境搭建
夜雨聆风