如果你在 2026 年 10 月 29 日于 Cursor 中安装或更新过 Claude Code 扩展,请先运行两条命令:一条在 authorized_keys 中查找 SSH 公钥 svc-telemetry,另一条查找恶意代码留下的持久化文件。只要发现任何一项,就运行 Cursor 官方的清理脚本,并在另一台机器上轮换你的凭据。仅卸载扩展是不够的。
下面是 macOS、Windows 和 Linux 的具体命令,来自 Cursor 的安全公告以及它发布的清理脚本。
Cursor 中的 Claude Code 扩展发生了什么?
Cursor 的扩展市场在大约 11 小时内分发了被篡改的 Anthropic.claude-code 扩展,版本为 2.1.312 和 2.1.313,覆盖 macOS 和 Windows。根据 Cursor 安全公告(2026 年 10 月 29 日发布,10 月 30 日更新),这些版本"并非由 Anthropic 开发"。
| 项目 | 已知情况 | 来源 |
|---|---|---|
| 被篡改的版本 | 2.1.312 和 2.1.313(darwin-arm64 与 win32-x64) | Cursor,10 月 30 日更新 |
| 时间窗口 | 2026 年 10 月 29 日,太平洋时间 02:27 至 13:35(UTC 09:27 至 20:35) | Cursor |
| 可能收到的用户 | 最多 5,000 人 | BleepingComputer 与 OX Security,引用 Cursor |
| 受影响渠道 | 仅 Cursor 扩展市场。Cursor 表示没有证据显示其他版本或官方分发渠道受影响 | Cursor |
| 攻击者服务器 | 已下线,与云服务商合作关停 | Cursor |
| 2.1.312 之前的版本 | 不在任何受影响名单中 | Cursor、OX、Phorion |
如果你只在终端中使用 Claude Code,或者是在 VS Code 中通过微软市场安装的扩展,上述来源中没有任何迹象表明你受到影响。
恶意代码在机器上做了什么?
它把机器信息发送给攻击者,并尝试通过 SSH 打开入口。根据 Cursor 的描述,共四个阶段:
- 收集:主机名、用户名、操作系统、架构、主目录、环境变量的名称、工作目录、Git 邮箱和公网 IP。
- 攻击者公钥:向
~/.ssh/authorized_keys追加一把注释为svc-telemetry的ssh-ed25519公钥。 - 反向隧道:尝试开启本地 SSH,并建立到攻击者服务器的
ssh -N -R隧道。Cursor 表示,由于恶意代码本身的错误,除非 Cursor 以管理员权限运行,否则这一步会失败。 - 持久化:macOS 上是 LaunchAgent,Windows 上是计划任务(以启动文件夹脚本作为后备),另有脚本大约每 60 秒尝试重建隧道。
分析过代码的 Phorion 记录到,环境变量过滤规则是 /KEY|TOKEN|SECRET|PASS|AWS|GCP/i,并且只发送名称,不发送值。这有助于决定先轮换哪些凭据,见下文。
怎么知道我的机器是否受影响?
查找公钥和持久化文件。不要相信版本号:Cursor 官方脚本说明,被篡改的包"保留了真实的版本号",因此它通过 extension.js 的内容来检测,你也应如此。
macOS 与 Linux
# 1. 是否安装了被篡改的扩展?(在代码中查找标记)
grep -l svc-telemetry ~/.[!.]*/extensions/anthropic.claude-code-*/extension.js 2>/dev/null
# 2. 攻击者公钥:按注释和指纹查找
grep -c svc-telemetry ~/.ssh/authorized_keys
ssh-keygen -lf ~/.ssh/authorized_keys | grep 0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk
# 3. 持久化
ls -la ~/.config/.smt ~/.config/.smtk ~/Library/LaunchAgents/com.apple.sysmond.plist 2>/dev/null
ls -a "${TMPDIR:-/tmp}" /tmp | grep '^\.stk_'
crontab -l 2>/dev/null | grep '\.config/\.smt'
为什么除了注释还要查指纹:Phorion 指出,注释可以被修改,公钥本身不会变。SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk 是 Cursor 和 OX Security 公布的被植入公钥指纹。
Linux 不在 Cursor 列出的受影响构建中,但代码中有针对它的例程(crontab 中指向 ~/.config/.smt 的 @reboot 条目),Cursor 也把这些路径列为入侵指标。最后一行就是检查这种情况。
Windows(PowerShell)
# 1. 是否安装了被篡改的扩展?
Get-ChildItem "$HOME\.*\extensions\anthropic.claude-code-*\extension.js" -Force -ErrorAction SilentlyContinue |
Select-String svc-telemetry -SimpleMatch -List
# 2. 攻击者公钥(Cursor 发布的命令)
$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" }
# 3. 持久化
schtasks /query /tn SysMon
Test-Path "$HOME\.config\smt.cmd", "$HOME\.config\smtk", "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\sysmon.cmd"
如果 schtasks 提示找不到该任务,且三个 Test-Path 都返回 False,说明持久化不存在。
发现公钥或文件后怎么清理?
运行 Cursor 官方脚本。它会卸载持久化、结束隧道进程、删除被篡改的扩展、移除落地文件,并从 authorized_keys 中删除公钥。如果有残留,它会以退出码 1 结束。
# macOS:以受影响的用户身份运行,不要用 sudo(脚本会拒绝 root)
curl -fsSLO https://cursor.com/static/security/claude-code-extension/remediate-macos.sh
less remediate-macos.sh
bash remediate-macos.sh
# Windows:关闭所有编辑器,以"以管理员身份运行"打开 PowerShell
Invoke-WebRequest https://cursor.com/static/security/claude-code-extension/remediate-windows.ps1 -OutFile remediate-windows.ps1
powershell -ExecutionPolicy Bypass -File .\remediate-windows.ps1
预期输出是 clean: no backdoor found(本来就没有)或 done: backdoor removed。如果出现 incomplete,请阅读这一行上方的警告,关闭编辑器后再运行一次。Windows 脚本会清理机器上的所有用户配置文件;macOS 脚本需要在每个受影响的用户下各运行一次。
不要用 sed '/svc-telemetry/d' 删除整行。Cursor 的两个脚本都解释了原因:攻击者公钥是"在没有前置换行的情况下"追加的,因此它可能和你的某把合法公钥位于同一行。删除整行会连你自己的访问权限一起删掉。脚本只会删除精确的公钥字符串。
在 macOS 上,如果脚本提示有程序在监听 localhost:22,而你在这台机器上并不使用入站 SSH,请关闭远程登录:sudo systemsetup -setremotelogin off。
Linux 没有官方脚本。请手动删除 crontab 条目和文件,并确认你其他的任务仍在(Phorion 指出恶意代码中的一个错误可能会清掉已有的 cron 任务):
crontab -l | grep -v '\.config/\.smt' | crontab -
rm -f ~/.config/.smt ~/.config/.smtk /tmp/.stk_*
crontab -l
从 Cursor 卸载扩展能解决问题吗?
不能。Cursor 写道,卸载"可能不够",因为持久化脚本会在编辑器之外独立运行。更新扩展同样不会删除公钥或 LaunchAgent。你需要执行上一节的清理。
应该先轮换哪些凭据?
受影响机器能访问到的所有凭据,并且要在另一台机器上操作。Cursor 的原话建议是"从可信系统轮换受影响主机可访问的凭据和会话",因为仅收集名称"并不能排除之后通过后门访问凭据的可能"。
为了排定优先级,看看恶意过滤规则在你的环境中会命中哪些名称:
env | cut -d= -f1 | grep -iE 'KEY|TOKEN|SECRET|PASS|AWS|GCP'
| 要轮换的内容 | 原因 |
|---|---|
| 上面命令输出的所有项 | 名称已发给攻击者,值可通过隧道获取 |
~/.ssh 中的 SSH 密钥 | 隧道可访问磁盘 |
GitHub 令牌(gh、Git Credential Manager)和 npm | 同上,且 Git 邮箱已被发送 |
| 云凭据(AWS、GCP、Azure) | 它们保存在主目录的文件中,不只在环境变量里 |
| 关键账号的浏览器会话 | Cursor 提到的是"凭据和会话" |
如果隧道确实建立过(发现了公钥且本地 SSH 已开启),Cursor 建议隔离该机器并评估是否重装系统。
常见问题
我只在终端里用 Claude Code,需要做什么吗?
根据目前的来源,不需要。事件发生在 Cursor 的扩展市场。运行一次查找公钥的 grep 只要一秒,就能确认。
我的扩展版本比 2.1.313 更新,安全吗?
新版扩展不含恶意代码,但只要 2.1.312 或 2.1.313 曾经运行过,公钥和持久化就会留下。请照样检查。
攻击者服务器已经下线,还需要清理吗?
需要。公钥仍然在你的 authorized_keys 中被授权,持久化脚本也仍在尝试建立隧道。今天服务器下线,不代表明天不会有另一台。
如果你在检查编辑器扩展期间想在终端里有一个备用的编程代理,Verboo Code 以 CLI 形式运行,令牌不限量。



