夜雨聆风学习资料网

ARTICLE · 1286494

Claude Code 插件被掉包 11 小时,5000 台开发机多了把 SSH 钥匙

Claude Code 插件被掉包 11 小时,5000 台开发机多了把 SSH 钥匙

10 月 29 日,太平洋时间凌晨 2 点 27 分到下午 1 点 35 分,Cursor 的扩展市场里挂着一个 Claude Code 扩展。名字对,图标对,版本号 2.1.313 也对。它不是 Anthropic 发的。

挂了大约 11 个小时。Cursor 在安全公告里给的上限是最多 5000 名用户受影响,公司会直接联系这些人。安全厂商 Phorion 先发现异常,RH-ISAC 随后出了完整拆解:扩展的主 JavaScript 包里被插进 66 行加载器,排在正常代码前面执行。

我关心的不是这 66 行写得多巧,是它挑的位置:不碰你的代码,只碰你的开发机。开发机上有 Git 邮箱、云密钥、CI 凭证,还有一把能连到服务器的 SSH 钥匙。这类机器在团队里通常比服务器松,因为大家都觉得“那只是台笔记本”。

它做的四件事

第一步摸底。收集主机名、用户名、操作系统、CPU 架构、主目录路径、当前工作目录、本机配置的 Git 邮箱、公网 IP,另外把最多 40 个名字里带 KEY、TOKEN、SECRET、PASS、AWS、GCP 的环境变量名一起打包。

注意,第一次上报只发变量名,不发值。看着像手下留情,其实是省事。一个叫 AWS_SECRET_ACCESS_KEY 的变量,等于告诉对方你接的是哪家云;一个叫 GITHUB_TOKEN 的,等于指出该往哪个方向使劲。

第二步留门。把攻击者控制的公钥追加进本机的 ~/.ssh/authorized_keys,注释写成 svc-telemetry,看上去像个内部监控组件。

第三步开门。尝试启动本机 SSH 服务,再向对方服务器建一条反向隧道。

OpenBSD 启动 Secure Shell 服务的终端画面。图片来源:Hpott,CC BY-SA 4.0

第四步上锁。macOS 用 LaunchAgent,Windows 试计划任务(先试 SYSTEM 身份,失败退回启动脚本),Linux 用 crontab,后台脚本大约每 60 秒重试一次。主机信息走明文 HTTP 发到对方 8099 端口的 /beacon。

多数机器只中了一半。开 SSH 服务要管理员权限,扩展在绝大多数 macOS 和 Windows 上拿不到,第三步通常失败,隧道没建起来。但公钥已经写进去了,持久化已经装上了,主机信息也已经发出去了。

Cursor 公告里专门提示了这一点:SSH 开启失败不等于没事,清理流程一样要走完。升级到 2.1.314 也不会清除已经落地的文件。

安全事件里最常见的误判,就是把“没成功”当成“没发生”。

现在该查什么

Anthropic 的说法是自家系统没被入侵。技术人员 Felix Rieseberg 公开表示,这不是 Anthropic 的系统或员工笔记本被攻破,而是有人利用对 Cursor 市场的访问权限发了个篡改副本。npm 上的 @anthropic-ai/claude-code 和微软 VS Code 市场里的构建,经 OpenSourceMalware 静态分析和 StepSecurity 核查,不含恶意代码。Open VSX 上现在挂着 2.1.312(10 月 27 日)和 2.1.314(10 月 30 日)。

Anthropic 官方主视觉。图片来源:Anthropic 官网

Cursor 的处置算完整:下架恶意版本、阻断分发、出于谨慎整体关掉 VS Code 市场、审计访问记录后确认没有其他扩展被同样篡改、轮换密钥后重建上线,还配合云服务商把攻击者服务器下线了。

但有个问题至今没有答案:一个冒名的包,是怎么进到官方市场里的?账号被盗、发布流程缺校验、审核被绕过,三种可能对应三种完全不同的风险,Cursor 没说明。

如果你在那 11 小时里更新过扩展,按这个顺序走:

  1. 先升到 2.1.314。这一步只止损,不清理。
  2. 打开 ~/.ssh/authorized_keys,删掉注释里带 svc-telemetry 的那一行。
  3. 查持久化:Windows 看计划任务,macOS 看 LaunchAgents 目录,Linux 看 crontab,顺手确认没有残留的反向隧道进程。
  4. 轮换凭证:Git 邮箱关联的账号、环境变量里的各类密钥、云平台和 CI 的访问凭证。
  5. 别用“我没开 SSH”当理由跳过前四步。

一周多以前有过一样的打法。OVHcloud 官方 CLI 的五个版本二进制被换成窃密程序,用的是被劫持的合法贡献者 GitHub 账号,被归进 GlassWorm 行动。两次都不打终点,打补给线。

一台塞满网线的服务器机架。图片来源:Kim Scarborough,CC BY-SA 2.0

我们把“官方”两个字当安全边界。这次的边界不在那个词上,在“谁有权往这个货架补货”这个流程上。AI 编程工具能读代码、能执行命令、能连仓库,权限比过去大了一圈,可我们对它插件生态的警惕,还停在“装个插件而已”。

现在花两分钟,去看一眼 authorized_keys。

资料来源:Cursor 安全公告、RH-ISAC 技术拆解、路透社与 IT 之家相关报道。版本号与时间以官方公告为准。

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

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

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

相关学习资料