Cursor 插件市场里的被植入后门的 Claude Code 2.1.313:装了什么、哪些仓库是干净的、每台机器怎么自查

HN 中文独立开发 AI 2026-10-30T23:50:13.640116+08:00

2026 年 10 月 29 日,Cursor 表示,Anthropic 的 Claude Code 扩展有一份被篡改的版本在其插件市场上架了约 11 个小时,最多触达 5000 名用户。我们自己去查了公开的插件仓库,把 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 的公告也印证了大致轮廓。

为什么卸载解决不了问题

扩展只是送货的车。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 给出的入侵指标,还有更多地方需要检查:

使用 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 的公告,不受影响;公告称未发现其他被篡改的扩展。

该怎么办

仍不清楚的地方

来源

查看原文