ARTICLE · 1292851
5000 人装了假 Claude 插件
10 月 29 日,一批开发者的电脑里,被人放了一把钥匙。

那天太平洋时间凌晨 2 点 27 分,Cursor 的扩展市场里,Anthropic 官方的 Claude Code 扩展冒出了新版本 2.1.313。Cursor 默认自动更新,打开编辑器的人不用点任何东西就装上了。到下午 1 点 35 分下架,中间大约 11 个小时。Cursor 后来说,最多 5000 名用户受影响。
最让人后背发凉的不是这个数字,是它的来路:这个恶意版本发在 Anthropic 的官方账号下,不是仿冒者。也就是说,用户所有的常识判断——看发布者、看版本号、看是不是官方——全都失效了。而权限是怎么丢的,Cursor 和 Anthropic 到现在都没讲清。
拆开看它做了什么。安全公司 Phorion 发现,攻击者在 extension.js 最前面插了约 7KB 的加载器,扩展模块一加载就执行,比扩展自己的启动函数还早,你甚至不用跟 Claude 说一句话。扩展本身照常能用,所以没有任何异样。
它干了四件事。第一,把这台机器的主机名、用户名、系统、家目录、Git 全局邮箱、公网 IP 打包,还用明文 HTTP 发到一个 IP 的 8099 端口;顺带扫了一遍环境变量名里带 KEY、TOKEN、SECRET、PASS、AWS、GCP 的那批,最多记 40 个——只记名字,不记值。但对攻击者来说,知道哪台机器上有云密钥、哪台有 GitHub token,就已经够用了。
第二,往 ~/.ssh/authorized_keys 里追加一把自己的公钥,注释写着 svc-telemetry。这个文件相当于你家门口的"允许进门名单",多一把钥匙,拿着对应私钥的人就能以你的身份登录。第三,试着把 SSH 服务打开,再从你电脑主动往外打一条反向隧道,断了每 60 秒重试一次。第四,留下开机自启:macOS 上是 ~/Library/LaunchAgents/com.apple.sysmond.plist,名字起得像苹果系统组件,实际去跑 ~/.config/.smt 这个脚本。
这里有个黑色幽默。开 SSH 之前,代码要先跑一条命令查状态,而这条命令本身需要管理员权限。普通用户跑它,返回的不是 On 也不是 Off,而是一句报错,退出码还是 0。代码拿到这句报错,里面没有 "Off",就以为远程登录已经开着,直接跳过了这一步。
结果就是:在大多数 Mac 上,钥匙塞进了名单,隧道也连上了,可隧道另一头没人开门,攻击者登不进来。Windows 那条路同样有 bug,开 SSH 的命令被硬塞给了 /bin/sh,标准 Windows 上跑不起来。
但别高兴太早。公钥、自启动脚本、信息回传这三样,都不需要管理员权限,已经实打实落在磁盘上了。而且卸载扩展、或者升级到干净的 2.1.314,都不会把它们清掉。哪天你自己打开了远程登录,这扇门就是现成的。
一分钟自查,三行命令的事:
grep -qs svc-telemetry ~/.ssh/authorized_keys && echo "中招" || echo "干净"
再确认三个文件在不在:~/Library/LaunchAgents/com.apple.sysmond.plist、~/.config/.smt、~/.config/.smtk。有的话,先断网留证据,删公钥、删这三个文件、结束连向那个 IP 的 ssh 进程,然后换一台干净机器,把这台上所有密钥和 token 全部轮换。
装扩展的那一刻,你信任的不只是写扩展的公司,还有替它分发的那个市场。同一个名字的扩展,背后可能是两条完全不同的发布通道——这次出事的是 Cursor 自家市场,你在 VS Code 官方市场装的那份没事。
需要说清楚:潜在受影响 5000 人,不等于实际被入侵 5000 台,多数机器上的远程访问那一步失败了。
你用 Cursor 还是 VS Code?现在会去查一下 authorized_keys 吗?















































































