Cursor 插件市场里的被植入后门的 Claude Code 2.1.313:装了什么、哪些仓库是干净的、每台机器怎么自查
2026 年 10 月 29 日,Cursor 表示,Anthropic 的 Claude Code 扩展有一份被篡改的版本在其插件市场上架了约 11 个小时,最多触达 5000 名用户。我们自己去查了公开的插件仓库,把 Cursor 和研究人员公布的各项特征合并成一份按操作系统区分的检查清单,并解释为什么卸载扩展并不能清除它留下的东西。
一分钟看懂
-
Cursor 称,被篡改的 Anthropic.claude-code 2.1.313 于太平洋时间 2026 年 10 月 29 日凌晨 2:27 至下午 1:35 出现在其 VS Code 插件市场,对应 UTC 时间 09:27 至 20:35。最多 5000 名用户拿到它。Cursor 表示这个版本并非 Anthropic 构建。
-
加载器在编辑器载入扩展时立刻运行,不需要先开启任何 Claude 对话。它会添加一个标记为 svc-telemetry 的攻击者 SSH 密钥,建立开机启动任务,尝试打开 SSH,开一条反向隧道,并把主机信息上报到 134.209.82.225。
-
据 Phorion 的分析,上报内容包含那些看起来像密钥或令牌的环境变量的名称,但不含其值。不过隧道一旦真正建立,用户能读到的一切都会暴露。
-
开启 SSH 需要管理员权限,而这个扩展并没有,所以 Cursor 认为在大多数 Mac 和 Windows 电脑上,开隧道这一步失败了。真正有风险的是那些原本就开着 SSH 的机器。
-
我们在 10 月 30 日检查了公开仓库:Open VSX、微软插件市场和 npm 都是从 2.1.312 直接跳到 2.1.314,后者由 Anthropic 在 10 月 30 日 00:12 至 01:20(UTC)之间发布。
-
光卸载不够。先按你的平台运行 Cursor 提供的修复脚本,然后在一台干净的机器上轮换凭据。
事情经过
Cursor 是一款基于 VS Code 的代码编辑器,插件从它自己的市场安装。Cursor 的公告称,被篡改的 Anthropic.claude-code 2.1.313 于太平洋时间 2026 年 10 月 29 日凌晨 2:27 至下午 1:35 在该市场上架。当天太平洋时间比 UTC 慢 7 小时,所以对应的时间窗是 UTC 09:27 至 20:35。
Cursor 表示已经移除该版本、关闭市场、审计访问权限、轮换密钥、重建市场并重新上线。官方称没有其他扩展被篡改,最多 5000 名用户受影响,将直接联系他们。同时还表示,攻击者的服务器在与托管服务商合作下已被关停,目前无法使用。
这个构建版本如何进入市场,目前尚未公开。Cursor 的公告没有说明,《The Hacker News》报道称具体方式仍不清楚。
早期报道称恶意构建来自 Open VSX——许多基于 VS Code 的编辑器使用的开放扩展注册表。《The Hacker News》和 OpenSourceMalware 的研究人员均对此作出更正:该构建实际可追溯到 Cursor 自己的市场。
我们亲自核查了公开注册表
10 月 30 日上午,我们向各公开注册表查询了 Claude Code 扩展和包的版本列表。
October 30, 2026, about 09:40 MDT
Open VSX GET https://open-vsx.org/api/Anthropic/claude-code/versions
2.1.314, 2.1.312, 2.1.311, 2.1.310, ... (no 2.1.313)
2.1.314 published 2026-10-30 01:07 UTC
Microsoft POST marketplace.visualstudio.com/_apis/public/gallery/extensionquery
anthropic.claude-code: 2.1.314, 2.1.312, 2.1.311, ... (no 2.1.313)
2.1.314 builds published 01:16 to 01:20 UTC on 2026-10-30
npm GET https://registry.npmjs.org/@anthropic-ai/claude-code
2.1.312 2026-10-27 18:36 UTC
2.1.314 2026-10-30 00:12 UTC (no 2.1.313 entry)
StepSecurity 写道,2.1.313 曾在 Microsoft 市场短暂上架,现在返回 404。我们无法根据今天的数据证实或排除这一点,因为被移除的版本不会在列表中留下记录。因此,无论从哪个来源安装的 2.1.313 都应视为恶意版本。
版本号被跳过这一点对快速排查很有帮助。如果某台机器上的扩展列表显示 anthropic.claude-code 为 2.1.313,那么这个构建并非来自我们查询过的任何公开注册表。
加载器的逐步行为
以下内容来自 Phorion 的分析,Cursor 的公告也印证了大致轮廓。
-
抢先运行。 一段代码放在 extension.js 的最顶部,编辑器一加载这个文件就会执行,比扩展自身的启动代码还早。OpenSourceMalware 数出了 66 行。整个过程不需要任何提示或点击。
-
留一扇门。 它把攻击者的 Ed25519 公钥(一种 SSH 登录用的密钥)追加到 ~/.ssh/authorized_keys,并标记为 svc-telemetry。只要你的 SSH 服务对外可达,持有对应私钥的人就能以你的身份登录。
-
试着把门推开。 它会尝试启用 SSH:Linux 上用 systemctl,macOS 上用 systemsetup,Windows 上用 PowerShell。Phorion 表示这几步不涉及提权,普通用户执行时通常都会失败。
-
顺着隧道回连。 它以 tunnel 用户向 134.209.82.225 发起一条出站 SSH 连接,让那台服务器把某个端口转发回你本机的 22 端口。这就是反向隧道:攻击者借助你机器主动发起的连接进来,所以家用路由器或公司防火墙即使拦截了入站流量也拦不住。它每 60 秒重试一次。
-
重启后依然存活。 macOS 上它会写入一个名为 com.apple.sysmond.plist 的 LaunchAgent,名字故意起得像苹果官方组件;Linux 上加一条 @reboot cron 条目;Windows 上创建一个名为 SysMon、以 SYSTEM 权限运行的计划任务,失败时退而求其次放到启动文件夹里。
-
回传情报。 它通过明文 HTTP 向 8099 端口发送一条 JSON 消息,内容包括主机名、用户名、操作系统、主目录、全局 Git 邮箱、公网 IP,以及最多 40 个名字里带 KEY、TOKEN、SECRET、PASS、AWS 或 GCP 的环境变量名。Phorion 称没有发送变量的值。
为什么卸载解决不了问题
扩展只是送货的车。SSH 公钥、启动任务,以及 ~/.config 下的隐藏文件都落在扩展目录之外,所以删掉扩展,这些东西仍然留在原地。Cursor 的公告说,该载荷会释放独立的持久化脚本,持续运行。
这也是 Cursor 提供两个修复脚本的原因:remediate-macos.sh 以受影响的用户身份运行,不要用 root;remediate-windows.ps1 在提权的 PowerShell 里运行。只要还有东西残留,两个脚本都会报错退出。Cursor 的公告没有列出 Linux 脚本;Phorion 则给出了需要手动删除的 Linux cron 条目。
真正面临风险的是谁
不管怎样,密钥和启动任务都会被植入。攻击者能否真正登录,关键取决于一个问题:那台机器上的 SSH 是否已经在接受连接?
如果 SSH 是关闭的,加载器必须把它打开,而这需要管理员权限,它并没有。因此 Cursor 表示,在大多数 macOS 和 Windows 主机上,隧道这一步很可能失败了。Phorion 还发现 macOS 路径上有一个 bug:在非 root 下运行时,systemsetup 检查会打印一个错误,而不是输出 Off 这个词,于是脚本根本不会尝试启用远程登录。
如果 SSH 本来就开着——比如一台运行 sshd 的 Linux 机器,或者一台启用了远程登录的 Mac——隧道就能连上,只要攻击者的服务器在线,植入的密钥就能让攻击者以你的身份登入。这类机器应视为已失陷,按 Cursor 的建议考虑重装。
无论哪种情况,上报都发出去了,所以攻击者可能已经拿到了主机名、用户名、Git 邮箱、公网 IP,以及密钥环境变量的名称。名称不是密钥,但它能告诉攻击者该去找什么。
如何检查一台机器
下面是 Cursor 给出的 macOS 快速检查命令,这里做了改写,让它在没找到时也会打印结果。在 Linux shell 里用法相同:
grep -qs svc-telemetry ~/.ssh/authorized_keys && echo "svc-telemetry key found" || echo "not found"
根据 Cursor 和 Phorion 给出的入侵指标,还有更多地方需要检查:
-
扩展目录:编辑器扩展目录下的
anthropic.claude-code-2.1.313-<platform>。 -
macOS:
~/Library/LaunchAgents/com.apple.sysmond.plist、~/.config/.smt、~/.config/.smtk以及$TMPDIR/.stk_*文件。 -
Linux:
crontab -l里有一条@reboot行,用于运行某个隐藏脚本。 -
Windows:一个名为
SysMon的计划任务、启动文件夹里的sysmon.cmd,以及~/.config/smt.cmd。在$HOME\.ssh\authorized_keys和C:\ProgramData\ssh\administrators_authorized_keys两处都搜索svc-telemetry。 -
网络:任何连向
134.209.82.225的 22 或 8099 端口的连接。通过隧道进来的登录会显示为来自 localhost。 -
文件哈希:
extension.js的 SHA-256 为ecb58cb29078d9646ad1dcdbe51526f2d9cfea06be5fb2ab183e8ecc3ab6bf15。
使用 AI 编程工具的团队应吸取的教训
编辑器扩展拥有与用户相同的权限,因此它能读取你的 SSH 密钥、云凭据,以及你能打开的每一个代码仓库。自动更新则意味着,一个有问题的版本可能在无人主动选择的情况下悄悄进入你的机器。OpenSourceMalware 的 Jenn Gile 在接受 The Hacker News 采访时表示,只要开启了自动更新,任何人都可能收到这个版本。
在基于 VS Code 的编辑器里,可以通过 extensions.autoUpdate 设置关闭扩展自动更新,也可以在“Install Another Version”里固定到某个版本,还可以用 code --list-extensions --show-versions 列出所有已安装扩展的版本号。每台机器都保留这样一份清单,下次出事时用一行搜索就能排查。
哪些人受影响
| 情况 | 状态 |
|---|---|
| 在 10 月 29 日 09:27 至 20:35(UTC)之间安装或更新 Claude Code 到 2.1.313 的 Cursor 用户 | 受影响。请运行 Cursor 提供的检查和修复脚本,然后轮换凭据。 |
| 上述机器中,本来就开启了 SSH 或远程登录的 | 风险最高。按已失陷处理,并参考 Cursor 的建议考虑重装系统。 |
| 使用微软市场(Microsoft marketplace)的 VS Code 用户 | 截至我们 10 月 30 日的查询,该市场中没有 2.1.313。StepSecurity 报告称曾短暂上架过,因此请核对已安装版本加以确认。 |
| Open VSX 和 npm 用户,包括 Claude Code 命令行工具 | 根据我们的查询以及修正后的报告,这两个仓库中都没有 2.1.313。 |
| 10 月 29 日没有接受该更新的 Cursor 用户 | 据 Cursor 的公告,不受影响;公告称未发现其他被篡改的扩展。 |
该怎么办
- 在每一台安装了基于 VS Code 编辑器的机器上,列出扩展及其版本,查找 anthropic.claude-code 2.1.313。
- 一旦发现命中,立即隔离该机器,运行 Cursor 的 remediate-macos.sh 或 remediate-windows.ps1,并手动删除 Linux 上的 cron 条目。
- 按 Cursor 的建议,在每一台机器上搜索 authorized_keys 中的 svc-telemetry,而不只是你怀疑的那几台。
- 换一台干净的机器,轮换该用户可访问的所有凭据和会话。优先从名称包含 KEY、TOKEN、SECRET、PASS、AWS 或 GCP 的环境变量开始。
-
封禁 134.209.82.225,并在过往的网络日志中搜索这个地址。
-
升级到 2.1.314 或更高版本,并决定开发者机器上的扩展是否该自动更新。
仍不清楚的地方
-
攻击者如何把这个构建版本送进 Cursor 的 marketplace(应用市场)。Cursor 和 Anthropic 都没有说明。
-
在最多 5,000 名用户中,有多少人此前已经开启 SSH,也就是实际有多少条隧道真正连上了。
-
StepSecurity 提到的短暂出现在微软 marketplace 的条目是否真的发生过。今天的注册表数据无法显示已被移除的版本。
-
截至 10 月 30 日,我们找不到 Anthropic 发布的任何声明。
-
逐步的加载器分析来自 Phorion、StepSecurity 和 OpenSourceMalware。Cursor 的公告在摘要层面确认了该行为,但没有确认每个细节,比如 40 个变量名的上限。
来源
-
Cursor,“Security notice: malicious version of Anthropic.claude-code (2.1.313) identified in the Cursor Extension Marketplace”(2026 年 10 月 29 日)—— 最初的报告
-
Phorion,“Official Claude Code Extension Compromise: Security Advisory”(2026 年 10 月 30 日)
-
StepSecurity,“Trojanized Claude Code Extension Delivered Persistent SSH Backdoor to Developer Machines”
-
The Hacker News:关于官方 Claude Code VS Code 扩展的报告,附 Open VSX 更正
-
Open VSX API:Anthropic.claude-code 版本
-
npm 注册表:@anthropic-ai/claude-code
-
VS Code 文档:Extension Marketplace(自动更新、版本、命令行)
-
Hacker News 上关于 Phorion 公告的讨论