你没点过可疑链接,也没从野路子下载,只是在 Cursor 里照常更新了一下 Claude Code,就中招了。
北京时间 10 月 29 日 17:27 到 30 日凌晨 4:35,Cursor 自己的扩展市场里出现了一个假货。名字叫 Claude Code,发布者一栏写着 Anthropic,版本号 2.1.313,这 11 个小时里最多 5000 人把它装进了电脑。装上以后界面照常、对话照常、代码照常写。微博微博

版本号就是破绽
去翻 Claude Code 的发版记录:npm、微软的 VS Code 市场、Open VSX 三个官方渠道,版本都从 10 月 27 日的 2.1.312 直接跳到 30 日的 2.1.314,2.1.313 从来没存在过。有人抢先在 Cursor 的市场里占下了这个号,就等正版用户来更新。知乎
安全研究员把假包拆开看了:整体跟正版几乎一样,连打包进去的程序都是原装的,只有主文件最前面多了 66 行代码。报错全被吞掉,正常插件照样启动,从你这边看,什么都没发生。知乎
这 66 行做了三件事
第一,摸底。记下主机名、用户名、系统、Git 邮箱和公网 IP,再扫一遍环境变量的名字,专挑带 KEY、TOKEN、SECRET、AWS 的,一起发给攻击者的服务器。变量的值没被拿走,但光看名字,对方就知道你配了哪些云服务。知乎
第二,塞钥匙。往 ~/.ssh/authorized_keys 里写一把叫 svc-telemetry 的攻击者公钥,这个文件决定谁能免密登录你的电脑。钥匙加进去,对方不输密码就能进来。微博
第三,留后路。开远程登录、打通反向隧道、装开机自启,Mac 上自启项伪装成系统组件 com.apple.sysmond,每 60 秒重连一次,就算你关掉编辑器甚至重启电脑,它也能重新连上。知乎
好消息是攻击者自己把代码写错了:没管理员权限的话,开远程登录那一步会失败,攻击者的服务器也已经被云服务商下线,多数人的电脑对方其实登不进来。坏消息是机器信息已经发出去了,钥匙和自启脚本还留在硬盘上。知乎微博
只卸载插件不够
这次事件最值得记下的是这一点:插件拿到的权限跟编辑器本身一样大,编辑器能做的事插件都能做,这是 VS Code 文档写明的。平时你在聊天框里让 AI 跑命令会弹确认框,但装着聊天框的插件本身不走确认框,它从加载那一刻起,拿的就是你系统账号的全部权限。知乎
发现之后,Cursor 下架并封禁了恶意版本,随后暂时关闭扩展市场,直到完成审计、密钥轮换和市场重建才恢复服务。官方同时提醒:单纯卸载插件无法清除后门,中招设备需要运行专用清理脚本。按公告的要求,还要检查受影响迹象,必要时隔离设备,移除恶意密钥和持久化脚本,再从可信设备轮换相关凭据与会话。微博微博
自查三步:
Mac 打开终端跑 `grep -qs svc-telemetry ~/.ssh/authorized_keys`,输出 No key found 就没事。知乎
在那 11 个小时里装过或更新过这个插件的,去 Cursor 安全公告下载清理脚本,Windows 的检查命令也在公告里。微博
把 Claude Code 更新到 2.1.314,Anthropic 已经发了正版。微博
真正该改的一个习惯
这次出事的不是野路子插件,是来路看着最正的那一个,而且只出在 Cursor 自家市场。同一个 Claude Code,npm、微软市场、Open VSX 上的版本都没问题。所以结论不是别再装插件,而是:装任何插件前,花一分钟对一下它在其他官方渠道的版本号,对不上就等等。微博
再给凭据上一道保险:SSH 密钥、云服务的 TOKEN 别长期不轮换。这次对方没登进来,靠的是权限设计加上攻击者自己的代码 bug,下一次未必还有这层运气。
审计之后,Cursor 还表示没发现其他扩展被篡改。写代码的活儿可以越来越多交给 AI,管钥匙的活儿,还是得自己来。微博