被植入木马的 Claude Code 扩展现身 Cursor 市场,供应链攻击持续 11 小时
加载时悄悄植入 SSH 密钥;攻击者如何使用 Anthropic 的 Cursor 发布者账号仍不清楚

2026 年 10 月 29 日,攻击者通过 Cursor 的第三方市场推送了一个被植入木马的 Anthropic Claude Code VS Code 扩展版本,在 11 小时的窗口内,向每一台加载该编辑器的开发者机器悄悄植入 SSH 后门。2.1.312 和 2.1.313 两个版本带有恶意载荷。Cursor 安全团队下架了受影响版本,关停了攻击者的命令与控制服务器,并封锁了市场;Anthropic 发布了干净的 2.1.314。两家公司都没有解释的是,恶意版本是如何在 Anthropic 内部系统没有明显被攻破的情况下,通过 Anthropic 在 Cursor 平台上自己的认证发布者账号推送出去的。
这段 66 行 JavaScript 载荷究竟做了什么
载荷是一段 66 行的 IIFE(立即调用函数表达式),被添加到扩展的主 JavaScript 包 extension.js 开头,生成的 SHA-256 指纹为 ecb58cb29078d9646ad1dcdbe51526f2d9cfea06be5fb2ab183e8ecc3ab6bf15,据 StepSecurity 的技术分析。VS Code 或 Cursor 加载扩展时,注入的代码会自动执行,先于合法的 Claude Code 功能运行,不需要任何额外的用户操作。
恶意加载器的第一个动作,是向系统的 SSH authorized_keys 文件追加一个新的 Ed25519 公钥。这个密钥带有注释 svc-telemetry,伪装成例行监控服务的凭证,对载荷的分析显示。持有对应私钥,攻击者就能以无密码、持久的方式通过 SSH 访问任何成功完成这一步的机器。
随后,代码打开一条到位于 134.209.82.225 TCP 22 端口的命令与控制服务器的反向 SSH 隧道,同时向同一地址的 8099 端口发送 HTTP 信标,登记新控制的机器。反向隧道的关键在于,它让攻击者能够访问位于 NAT 或企业防火墙之后的机器,无需受害者一侧开放入站端口,实际上绕过了常见的网络边界控制。
三平台持久化,伪装成系统基础设施
针对各平台的持久化确保隧道在重启后依然存在。在 macOS 上,恶意软件写入一个 LaunchAgent plist,标识符为 com.apple.sysmond,这个字符串是为了混入苹果合法的系统监控守护进程。在 Linux 上,它向当前用户的 crontab 注入一条 @reboot 定时任务。在 Windows 上,它以 SysMon 为名注册了一个计划任务。这些做法之所以动静很小,正是因为它们模仿合法的系统基础设施,而不是引入明显的新进程。
为什么大多数 macOS 和 Windows 机器逃过了完全攻陷
一个结构性因素降低了开发者群体的实际沦陷率:在许多配置下,在现代 macOS 和 Windows 系统上启用 SSH 服务或向已运行服务的 authorized_keys 文件追加内容,都需要管理员权限。Claude Code 扩展在未提权的用户上下文中运行,因此启用 SSH 的步骤在许多机器上静默失败。Linux 开发者系统的风险更高,因为大多数发行版默认运行 SSH 守护进程,植入密钥这一步更有可能作用于正在运行的服务。
恶意版本通过 Anthropic 自己的发布者账号发出
安全公司 Phorion 和独立研究者 Kevin Beaumont 都证实,恶意版本是通过 Anthropic 在 Cursor 市场上自己的认证发布者账号分发的,而不是命名空间冲突或名称相似的仿冒账号,据 BleepingComputer 报道。Anthropic 公开表示其内部系统没有被攻破。Cursor 没有公布解释,说明发布者账号是如何被访问的,也没有说明为什么恶意推送在分发之前没有在平台层面被发现。
访问途径的重要性超出了这起事件本身。Cursor 的市场是一个独立平台,与微软的 VS Code Marketplace 和 Eclipse 基金会的 Open-VSX 注册表不同。Anthropic 安全人员证实,后两个平台都没有受到影响。攻击面明确位于 Cursor 的发布者账号管理基础设施之内。在弄清账号如何被访问之前,开发者无法判断这是一次孤立的凭证窃取,还是反映了 Cursor 认证扩展发布者方式的结构性弱点。
范围、受影响版本,以及卸载后依然存在的修复缺口
Cursor 估计,从太平洋时间 10 月 29 日约 02:27 首次恶意推送到约 13:35 市场下架的这段时间内,约有 5000 名开发者受到影响,时间跨度略超 11 小时,见 Cursor 的官方安全通告。受影响的版本号是 2.1.312 和 2.1.313,涵盖 Windows 和 macOS 版本。Anthropic 发布 2.1.314 作为干净的替代版本,并有意跳过了 2.1.313 这个版本号,以防止任何缓存或镜像分发的受污染版本被当作最新版本。
运行过任一受影响版本的开发者,即便卸载了扩展,也必须检查持久化痕迹。卸载只会移除扩展代码,注入的 SSH authorized_keys 条目,以及因操作系统而异的 LaunchAgent、cron 条目或计划任务都还在。Cursor 发布了针对各平台的修复脚本。任何加载过恶意代码的机器,都应视为已向如今已下线的 C2 服务器登记;这些机器上开发环境可访问的凭证(令牌、API 密钥、仓库访问权限)都应轮换。
AI 编程扩展成为供应链攻击的新首要目标
这是针对 VS Code 相关市场和 AI 编程工具链、不断加速的一系列供应链攻击中的最新一起。2026 年 5 月,一次连环供应链入侵让攻击者在 18 分钟窗口内向 VS Code 市场推送了恶意的 Nx Console 扩展版本;从一名 GitHub 员工机器上窃取的凭证随后让攻击者访问了约 3800 个 GitHub 内部仓库,Nx 的事后复盘记录了这一事件。AI 编程工具之所以成为有吸引力的目标,是因为它们按设计就拥有广泛的文件系统访问、终端执行权限和环境变量可见性,这种情境下的扩展,被攻陷后的影响面比一般的语言服务器插件大得多。
发布者账号凭证仍是生态中缺失的信任层
这起事件暴露的结构性风险,是扩展市场缺少强制性的制品密码学签名。发布者凭证(密码、令牌或 OAuth 会话)是单一控制点:攻击者一旦拿到,以该身份发布的一切在凭证被吊销之前都值得怀疑。用开发者持有的私钥为每个制品签名,并独立于账号凭证固定对应的公钥,就能把发布者账号被攻陷转变为可检测的伪造。Cursor、微软 VS Code Marketplace 和 Open-VSX 目前都没有强制要求这一点。
就 C2 服务器已下线、受影响版本已撤回而言,Cursor 事件已得到控制。但就促成它的条件而言,它并没有被控制:发布者账号作为扩展分发唯一信任锚点的局面,在整个生态中都没有改变。在访问途径被披露、发布者认证要求得到加强之前,同样的攻击结构对任何能接触到正确账号的行为者都是可用的。