我们的 AI 引擎 Neutron 在加州大学伯克利分校的 CyberGym 基准测试中取得了 97.1% 的成绩。 了解更多

深度解析

深度解析

Cursor 市场上的 Claude Code 扩展被植入木马并安装 SSH 后门

Cursor 扩展市场上的恶意 Claude Code 2.1.313 版本添加了 SSH 后门;2026 年 10 月 29 日至多有 5,000 名用户安装了它。

摘要

  • Anthropic 官方 Claude Code VS Code 扩展的一个恶意构建版本 2.1.313 于 2026 年 10 月 29 日通过 Cursor 扩展市场分发了约 11 个小时。Cursor 声明至多有 5,000 名用户安装了它,并说明该构建不是 Anthropic 开发的。
  • 该构建在扩展的主 JavaScript 文件前插入了 66 行加载器。它向 ~/.ssh/authorized_keys 添加攻击者控制的 SSH 密钥,尝试启用本地 SSH 服务,打开反向 SSH 隧道,并安装按平台划分的持久化机制。
  • OpenSourceMalware 于 2026 年 10 月 30 日发布了代码分析。Cursor 移除了该版本、关闭并重建了市场,并让攻击者服务器下线。没有其他扩展被篡改。该事件未分配 CVE,截至 2026 年 10 月 30 日未列入 CISA KEV。
  • 如果您在 10 月 29 日从 Cursor 市场安装或更新过 Claude Code,请先运行下文的 svc-telemetry 检查,再按步骤清除。仅卸载扩展不够:载荷会留下独立运行的持久化机制。

我受影响吗?

以下条件必须全部成立:

  • 您使用的是 Cursor IDE 而非 VS Code,并且是从 Cursor 扩展市场安装或更新的 Claude Code 扩展。
  • 安装或更新发生在恶意版本可获取的时间段内,即 2026 年 10 月 29 日太平洋时间约凌晨 2:27 至下午 1:35。
  • 安装的版本是 2.1.313。开启自动更新时 Cursor 会自动安装扩展,因此版本号比您是否主动选择安装的记忆更重要。

以下渠道不受影响,OpenSourceMalware 已确认它们是干净的:

  • @anthropic-ai/claude-code npm 包。
  • Open VSX 上的 Claude Code 扩展。
  • Microsoft Visual Studio Code Marketplace 上的 Claude Code 扩展。

版本 2.1.313 从来不是 Anthropic 的官方版本。Anthropic 公布的版本从 2026 年 10 月 27 日的 2.1.312 直接跳到 10 月 30 日的 2.1.314,这个恶意版本号只存在于 Cursor 的市场中。

检查载荷是否在您的机器上运行过。加载器最可靠的痕迹是它追加的 SSH 密钥。在 macOS 和 Linux 上运行:

grep -qs svc-telemetry ~/.ssh/authorized_keys && echo "svc-telemetry key found" || echo "No key found; machine not impacted"

在 Windows 上用 PowerShell 运行:

$files = "$HOME\.ssh\authorized_keys", "C:\ProgramData\ssh\administrators_authorized_keys" | Where-Object { Test-Path $_ }
if ($files -and (Select-String svc-telemetry $files)) { "svc-telemetry key found" } else { "No key found; machine not impacted" }

这些检查来自 Cursor 的安全通告。未找到密钥并不能证明扩展从未运行,只能证明后门的密钥步骤没有完成。“如何检查是否已被入侵?”中的指标覆盖其余部分。

如何修复?

恶意扩展已从市场移除,因此修复就是清除和验证。

  1. 在 Cursor 中卸载 Claude Code 扩展并重启编辑器。如果仍需在 Cursor 中使用 Claude Code,从重建后的市场重新安装,并确认版本为 2.1.314 或更高。
  2. 运行上面的 svc-telemetry 检查。如果找到密钥,先按“检查发现密钥时该怎么办?”处理。
  3. 运行 Cursor 针对您平台的修复脚本:macOS 上以受影响用户身份运行 remediate-macos.sh,Windows 上在管理员 PowerShell 中运行 remediate-windows.ps1。脚本会移除扩展、持久化机制、隧道进程和攻击者的密钥,如有残留会以非零状态退出。
  4. 反复运行 svc-telemetry 检查,直到报告没有密钥为止。

Anthropic 已于 2026 年 10 月 30 日向 Open VSX 和 Microsoft VS Code Marketplace 发布了版本 2.1.314,因此来自这两个市场的扩展会正常更新到干净版本。

恶意代码做了什么?

唯一被修改的文件是 extension.js。OpenSourceMalware 发现扩展合法包体之前被插入了一个 66 行的立即执行函数,因此恶意代码在扩展模块加载时运行:也就是 VS Code 启动时和扩展 webview 打开时。不涉及任何包生命周期脚本,加载模块就足以触发。

加载器在 macOS、Linux 和 Windows 上执行同一条链:

  1. 侦察。 收集主机名、本地用户名、操作系统、CPU 架构、主目录、当前工作目录、来自 git config --global user.email 的全局 Git 邮箱,以及最多 40 个名称中含有 KEY、TOKEN、SECRET、PASS、AWS 或 GCP 字符串的环境变量名。变量值不会被发送;仅凭名称也能看出这台机器配置了哪些云厂商和哪些类型的凭据。
  2. 安装授权密钥。 以 0700 权限创建 ~/.ssh,向 ~/.ssh/authorized_keys 追加一条注释为 svc-telemetry 的 Ed25519 公钥,并将文件权限设为 0600。
  3. 启用 SSH 服务。 在 macOS 上用 sudo -n systemsetup -setremotelogin on 开启 Remote Login,在 Linux 上通过 systemctl 启动 sshd,在 Windows 上通过 PowerShell 安装并启动 OpenSSH Server。
  4. 反向 SSH 隧道。 将内嵌的 OpenSSH 私钥解码到名为 .stk_<identifier> 的临时文件,然后以转发请求 -N -R '*:0:localhost:22' 反复连接 tunnel@134.209.82[.]225,要求攻击者服务器分配一个转发到受害者 SSH 服务的端口。主机密钥验证被禁用,连接每 60 秒重试一次,并在可用时优先使用 autossh。
  5. 持久化。 在 macOS 上写入 ~/.config/.smt 和 ~/.config/.smtk,外加一个带 RunAtLoad 和 KeepAlive 的 LaunchAgent com.apple.sysmond.plist。在 Linux 上,它在 ~/.config 下写入同样的两个文件,并以 @reboot 条目把隧道脚本加入用户 crontab。在 Windows 上创建名为 SysMon 的计划任务并尝试以 SYSTEM 运行,失败时退回到启动文件夹中的脚本。
  6. 信标。 1.5 秒后用 curl ifconfig.me 和 curl https://api.ipify.org 获取公网 IP,把收集到的详情以 JSON 通过未加密的 HTTP POST 到 http://134.209.82[.]225:8099/beacon,并向 http://127.0.0.1:8099/beacon 发送第二个 POST。响应被丢弃。

几乎所有异常都被吞掉,因此失败不会留下可见痕迹,合法扩展继续加载。被注入的阶段不再下载任何东西;OpenSourceMalware 未发现第二阶段下载器,只有 IP 查询、信标和交互式隧道。

特洛伊化的更新如何到达用户?

恶意构建通过 Cursor 的 VS Code 扩展市场、以 Claude Code 扩展的合法身份 anthropic.claude-code 发布,Cursor 将其作为版本 2.1.313 分发。由于携带了真实的发布者身份,它作为一次普通更新到达用户和自动更新,而不是一个新扩展。该版本在两个 Anthropic 官方版本之间可获取约 11 个小时,从太平洋时间约凌晨 2:27 到下午 1:35。

从 10 月 27 日的官方 2.1.312 到 10 月 30 日干净的 2.1.314 的时间线,恶意 2.1.313 在 10 月 29 日于 Cursor 市场存在了 11 个小时。
图 1:恶意 Claude Code 扩展版本在两个 Anthropic 官方版本之间、于 Cursor 市场可获取,2026 年 10 月 27 日至 30 日。来源:Cursor 安全通告、Anthropic 版本发布与 OpenSourceMalware,2026 年 10 月 30 日查证。

Cursor 声明其识别了该事件、移除该版本并阻止继续分发,随后关闭整个市场、审计访问、轮换密钥并重建市场。该公司还与托管服务商合作让攻击者服务器下线,因此反向隧道和信标端点已不再工作。

攻击者如何引入该版本尚无公开结论。The Hacker News 报道其方法仍不清楚。OpenSourceMalware 写明其分析样本的来源未被确认,其发现只证明该样本是恶意的,并不能证明 Anthropic 自身的发布基础设施被入侵。Cursor 告知 OpenSourceMalware,其市场中的 Claude Code 扩展“经历了某种形式的入侵”,这把事件定位在 Cursor 的分发路径而非 Open VSX。

攻击如何流动?

一句话:攻击者铸造了一个被 Cursor 市场当作普通更新分发的木马化 2.1.313,而前置的加载器把每一次编辑器重启都变成一条通往攻击者服务器的持久 SSH 通道。

flowchart LR A["攻击者铸造
2.1.313"] --> B["Cursor 市场将其
作为更新分发"] B --> C["VS Code 加载
extension.js"] C --> D["前置的 66 行加载器
最先运行"] D --> E["svc-telemetry 密钥被加入
authorized_keys"] D --> F["指向 134.209.82[.]225 的
反向 SSH 隧道"] D --> G["持久化:LaunchAgent、
cron、计划任务"] D --> H["主机详情信标
发往 :8099"]

攻击者能做什么?

这条链的目标是通过 SSH 获得持久远程访问。其实际影响范围有限,Cursor 自己的分析说得很清楚:

  • 在大多数 macOS 和 Windows 主机上,启用 SSH 的步骤失败了。开启本地 SSH 服务需要管理员权限,Cursor 声明除“Cursor 以管理员权限启动这一极罕见情况”外,恶意代码中的错误使该步骤失败。没有监听中的 SSH 服务,隧道就没有可转发的 22 端口,攻击者无法通过它登录这些主机。
  • 密钥安装、持久化和信标仍会落在这些主机上,机器详情仍会到达攻击者。Cursor 告诉受影响用户无论如何都要执行修复步骤。
  • 在 SSH 服务确实启动的主机上,持有对应私钥的操作者可以通过反向隧道连接,以受害者的用户账户执行命令,OpenSourceMalware 如此描述隧道的用途。
  • 信标携带的是主机详情和环境变量的名称,而不是值。OpenSourceMalware 指出,一旦 SSH 访问成功,操作者可以直接检查该账户,因此信标低估而非夸大了访问能力。

两项分析都未观察到后续载荷。

检查发现密钥时该怎么办?

把这台机器视为已被入侵,并按以下顺序响应,结合 Cursor 与 OpenSourceMalware 的指引:

  1. 将机器断网并隔离。在您的控制点上封锁 22 和 8099 端口上的 134.209.82[.]225。
  2. 在清理前保全取证证据:被释放的文件、authorized_keys 中的那一行、LaunchAgent 或计划任务,以及任何进程遥测。OpenSourceMalware 建议先收集证据,因为可见文件可能并不代表入侵的全部。
  3. 使用 Cursor 的修复脚本,或按下文的指标手动移除扩展、持久化机制和任何运行中的 ssh 或 autossh 隧道进程。
  4. 在已知干净的系统上轮换该账户可达的所有凭据和会话:SSH 密钥、Git 平台、包仓库、云控制台、密码库和浏览器会话。
  5. 评估是否重建。OpenSourceMalware 写道,重建主机比假设移除已知痕迹就能恢复信任更安全,因为隧道曾提供一条通往该账户的交互路径。

如何检查是否已被入侵?

除了 svc-telemetry 密钥检查外,还要在终端、网络日志和扩展安装遥测中检索已公布的指标。它们全部来自 Cursor 的安全通告和 OpenSourceMalware 的分析。

要检索的文件与持久化痕迹:

  • 含有注释 svc-telemetry 的 ~/.ssh/authorized_keys
  • ~/.config/.smt 和 ~/.config/.smtk(macOS、Linux),或 %USERPROFILE%\.config\smt.cmd 与 smtk(Windows)
  • $TMPDIR 或 %TEMP% 中匹配 .stk_<10 hex> 或 .nc<PID>.js 的文件
  • macOS 的 LaunchAgent ~/Library/LaunchAgents/com.apple.sysmond.plist,标签为 com.apple.sysmond
  • 名为 SysMon 的 Windows 计划任务,或启动文件夹中的 sysmon.cmd
  • extension.js 中包含 134.209.82.225 和 svc-telemetry 的、名为 anthropic.claude-code-2.1.313-darwin-arm64 或 anthropic.claude-code-2.1.313-win32-x64 的扩展目录

网络指标:

  • 任何连接 134.209.82[.]225 的流量,尤其是 22 和 8099 端口
  • 指向 /beacon 的 HTTP POST,包括发往回环地址 127.0.0.1:8099 的尝试
  • 对 ifconfig.me 和 api.ipify.org 的查询是合法服务;将其视为背景信息而非证据

要检索的进程命令行:

  • ssh -N -R '*:0:localhost:22' 或 autossh -M 0
  • SSH 选项 StrictHostKeyChecking=no 且 UserKnownHostsFile=/dev/null
  • schtasks /create /tn SysMon、systemsetup -setremotelogin on 或 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

用于终端扫描的包哈希:被篡改的 VSIX 文件哈希为 432ccdee3801f99e52b8fe31f69ea9870118e96ea7ef9ecabed1479621b5ab62(darwin-arm64)和 3de1722901165769893bef57c72594e9a54459faa23f3091b136b79966edd081(win32-x64),恶意 extension.js 为 ecb58cb29078d9646ad1dcdbe51526f2d9cfea06be5fb2ab183e8ecc3ab6bf15。

命中任何单个指标只是一条线索,不是整条链的证据。所有步骤都失败的尝试仍可能留下信标和密钥。

时间线

  • 2026-10-27:Anthropic 发布 Claude Code 扩展 2.1.312,这是事件前的最后一个官方版本。
  • 2026-10-29:太平洋时间约凌晨 2:27 至下午 1:35 之间,恶意 2.1.313 在 Cursor 扩展市场可获取。Cursor 随后声明至多有 5,000 名用户受影响。
  • 2026-10-29:Cursor 识别出恶意版本,将其移除并阻止分发,出于谨慎关闭整个 VS Code 市场,随后在轮换密钥并审计访问后重建市场。
  • 2026-10-29:Cursor 与托管服务商合作,让 134.209.82[.]225 上的攻击者服务器下线。
  • 2026-10-30:Anthropic 向 Open VSX 和 Microsoft VS Code Marketplace 发布 Claude Code 扩展 2.1.314。
  • 2026-10-30:OpenSourceMalware 发布技术分析与失陷指标;含检查和修复脚本的 Cursor 安全通告上线。

常见问题

npm 包 @anthropic-ai/claude-code 是恶意的吗?

不是。OpenSourceMalware 检查了 npm 包、Open VSX 扩展和 Microsoft VS Code Marketplace 扩展,三者都干净。只有 Cursor 市场中的 2.1.313 版本携带加载器,而且该版本号从未存在于 Anthropic 的官方版本中。

攻击者真的能通过后门登录吗?

在大多数主机上不能。Cursor 声明开启本地 SSH 服务需要管理员权限,并且除非 Cursor 本身以管理员权限运行,恶意代码中的错误会使该步骤失败。没有监听中的 SSH 服务,反向隧道就没有可转发的内容。密钥、持久化和信标仍会被安装,Cursor 仍要求受影响用户执行修复。

有人自动收到恶意版本吗?

有,这可能是大多数受影响用户的途径。OpenSourceMalware 的 Jenn Gile 指出,任何将 Claude Code 设为自动更新的人都可能收到该恶意软件,因为市场会以发布者身份分发更新。Cursor 正在直接联系受影响的用户。

攻击者还在线吗?

不。Cursor 声明攻击者服务器已不再工作:该公司与托管它的云服务商合作使其下线,因此反向 SSH 隧道和主机详情信标 POST 均已失效。受影响机器上的密钥和持久化机制在被清除前仍然存在。

受影响的机器需要重装吗?

需要评估。OpenSourceMalware 写道,重建比假设移除已知痕迹就能恢复信任更安全,因为隧道曾提供一条由操作者控制、通往 SSH 服务的路径,后续活动不会出现在静态样本中。至少要移除密钥与持久化、轮换可达凭据并审查认证、SSH 和进程日志。

谁发现并披露了这件事?

Dean Hardcastle 在恶意更新出现时实时发现并提醒了 OpenSourceMalware,其研究员 Paul McCarty 和 Jenn Gile 于 2026 年 10 月 30 日发布了分析。Cursor 发布了包含指标、检查方法和修复脚本的安全通告。The Hacker News 于 2026 年 10 月 30 日报道了该事件,并更正了早期版本中称 Open VSX 为被入侵仓库的说法。

参考文献

  • Cursor 安全通告"Security notice — malicious version of Anthropic.claude-code (2.1.313) identified in the Cursor Extension Marketplace",2026 年 10 月 29 日,含受影响时间窗、5,000 名用户数字、SSH 启用步骤失败的分析、检查方法、修复脚本和指标:https://cursor.com/blog/claude-code-extension-security-notice(2026 年 10 月 30 日查证)
  • OpenSourceMalware 分析"Trojanized Claude Code Extension Plants an SSH Backdoor",2026 年 10 月 30 日,含 66 行加载器细节、信标、隧道、持久化机制和哈希:https://opensourcemalware.com/blog/trojanized-claude-code-extension-plants-persistent-ssh-backdoor(2026 年 10 月 30 日查证)
  • Cursor 关于该事件的声明,发布于 2026 年 10 月 29 日:https://x.com/cursor_ai/status/2116074289053175808(2026 年 10 月 30 日查证)
  • Anthropic 的 Claude Code 版本发布,2.1.314 发布于 2026 年 10 月 30 日,2.1.313 并不存在:https://github.com/anthropics/claude-code/releases(2026 年 10 月 30 日查证)
  • The Hacker News"Official Claude Code Extension on Cursor Marketplace Trojanized with Persistent SSH Backdoor",2026 年 10 月 30 日,报道引入更新所用方法仍不清楚:https://thehackernews.com/2026/10/official-claude-code-vs-code-extension.html(2026 年 10 月 30 日查证)
  • @anthropic-ai/claude-code 的 npm 包页面,显示 2026 年 10 月 22 日至 28 日一周下载量 12,837,062,用于说明与扩展同名的干净包的规模:https://www.npmjs.com/package/@anthropic-ai/claude-code(2026 年 10 月 30 日查证)