夜雨聆风学习资料网

ARTICLE · 1289867

一个从没发布过的版本号,在5000台电脑里装了个SSH后门

一个从没发布过的版本号,在5000台电脑里装了个SSH后门

昨天这件事刷屏的版本是:Claude Code 被投毒,5000 名开发者中招。

我看了三条一手信源,然后干了一件事——打开终端,照安全公告里的特征码查了自己这台机器。结果是干净的:没有那把叫 svc-telemetry 的钥匙,没有 .smt 脚本,没有开机自启的隧道。

写这篇不是为了吓人。是想把这事里最反常识的一层拎出来:出问题的那个版本号,2.1.313,Anthropic 说它从来没被发布过。

01

66 行代码,干了四件事

​

被改过的文件只有一个:extension.js。攻击者在正式代码前面塞了一段 66 行的加载器,其余部分原封不动——正常的激活函数、正常的界面代码,肉眼和哈希前都像个正常扩展。

它在你打开编辑器、扩展被激活的那一瞬间执行,不需要你点任何东西,也不需要你真的用 Claude Code 写一行代码。

四件事:收集主机信息(主机名、用户名、系统、架构、家目录、环境变量名、Git 邮箱、公网 IP);往 authorized_keys 里追加一把攻击者的 SSH 公钥;开一条反向 SSH 隧道连到 134.209.82.225;装持久化——macOS 写 LaunchAgent,Windows 写计划任务,Linux 写 @reboot 的 cron。

从 2:27 到 13:35(太平洋时间),11 个小时。Cursor 的估计上限是 5000 人,事后它直接联系了受影响的用户。

恶意版本在线时长 vs. 一天的可用时长

扩展在线窗口 · 11 小时

​

一整天 · 24 小时

​

数据来源:Cursor 安全公告(2:27–13:35 PT)

02

先说句不合时宜的:它基本没成功

​

全网都在转「5000 名开发者被植入后门」。我读完三份技术分析,判断比这个说法冷一点。

开启本地 SSH 服务需要管理员权限。恶意扩展没有。所以 Cursor 的原话是:在绝大多数 macOS 和 Windows 机器上,这一步会失败,攻击者根本连不进来。Phorion 的分析更细——恶意代码里有个 macOS 上的判断写错了,隧道起来又掉了。

再加上攻击者的服务器已经被端掉:Cursor 找了托管商把它下线,现在那条反向隧道和上报接口都是死的。

所以真实损失更接近于:你的主机名、用户名、内网 IP、Git 邮箱、环境变量名——被抄走了一份。不是「你的机器被人遥控了 11 小时」。

这不是替谁开脱。恰恰相反,下面这一段才是真正该紧张的地方。

03

卸载扩展,清不掉它

​

这是公告里最容易被划过去的一句:卸载扩展可能不够。

因为载荷落的是独立文件,不属于扩展目录。macOS 和 Linux 上是 ~/.config/.smt 这个 shell 脚本加一个配套私钥,再加一个每 60 秒重连一次的守护项;临时目录里还有一份以主机名和家目录哈希命名的私钥。

扩展删了,这些东西还在。重启之后,那个 LaunchAgent 或 cron 会再把隧道拉起来——虽然对面已经是台死服务器。

Cursor 的建议是:隔离主机,跑清理脚本,然后把这台机器上能碰到的凭据全部轮换,从一个干净的机器上操作。因为环境变量名都被收走了,谁能保证它没顺手多拿点别的。

04

一个版本号,几个商店,谁说了算

​

这里有一段值得所有人记住的混乱。

最早爆出来的研究员说,恶意包在 Open VSX 上。Socket 去查了注册记录,没有找到 2.1.313 的发布或撤下记录。OpenSourceMalware 后来改了稿,说是 Cursor 的商店,不是 Open VSX。Anthropic 的工程师在 Hacker News 上直接说:2.1.313 从来没在 Open VSX、VS Code 官方商店或我们任何官方渠道发布过,是有人在 Cursor 商店发了个假的;为了区分,我们把下一个版本号跳到了 2.1.314。

有人统计了事发当天 67 条相关帖子,其中 9 条还在说 Open VSX。

同一个扩展 ID,可以同时存在于好几个商店。你在一个商店里看到的「Anthropic 官方」蓝标,对另一个商店里同名同 ID 的那份拷贝,没有任何约束力。这次的问题不在 Anthropic 的发布流程,也不在 VS Code 官方商店——就在中间那一层镜像和代理上。

说白了:你信任的不是开发者,是你装东西的那个商店。

05

现在花两分钟查一下

​

按公告的特征码,四条命令就够。终端里逐条跑:

第一,看你有没有这个版本。在 Cursor 里打开扩展面板搜 Claude Code,版本是 2.1.313 或 2.1.312 就直接卸,升到 2.1.314。

第二,查那把钥匙。grep svc-telemetry ~/.ssh/authorized_keys——有输出就是中招了,删掉那一行。

第三,查持久化。ls ~/.config/.smt ~/.config/.smtk,存在就删;再看 crontab -l 里有没有一条 @boot 跑 .smt 的。

第四,查进程。ss -tlnp 看有没有莫名其妙的本地监听,或者直接看有没有连向 134.209.82.225 的连接。

以上任何一条命中,别自己手动清。按公告跑官方脚本,然后把这台机器上的 token、密钥、登录态全换一遍。CEO 的直觉是重装,安全团队的直觉是重装前先取证——这次我站取证,因为攻击者服务器已经没了,过去的东西不会再变。

收尾。

谁该用:在 Cursor、Windsurf、VSCodium 这类非微软商店的编辑器上装 Claude Code 的人,尤其是公司给配了机器、机器里放着云凭据的。今天就去查。

谁不用慌:只在 VS Code 官方商店装、或者只用命令行版 Claude Code 的人,这次跟你无关。

我的判断

这次真正的漏洞不是那 66 行代码,是「装个扩展」和「给对方一个你自己」之间,我们从来没设过一道门。

问一句:你的编辑器里现在装了多少个扩展?你能说清楚每一个是谁发的、从哪个商店下的吗?


本文由 AI 辅助整理生成,内容以官方来源为准。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料