ARTICLE · 1284431
卸载扩展等于没清:Claude Code后门把自己钉进了你的开发机
【ITADN技术社区导读】假 Claude Code 扩展在商店挂了整整 11 小时,偷密钥、配后门,自动更新替攻击者把毒送上门。没出大事只因对方代码写崩了,这次该查什么、下次怎么防,都在里面。
Claude Code 官方 VS Code 扩展被人偷偷换成带后门版本,在商店挂了整整 11 个小时。装过的人,机器上可能已被写入一把别人开的钥匙。


一图看懂:本文关键数据

11 小时里发生了什么
某日凌晨 2 点 27 分(太平洋时间),被恶意篡改的 Claude Code 扩展被放上了 Cursor 的扩展市场。到下午 1 点 35 分下架,它整整挂了 11 个小时。
假的就是假的:版本号 2.1.312 和 2.1.313,Windows 和 macOS 双平台,跟 Anthropic 一点关系都没有。但名字、图标、描述全是真的样子——市场里的「官方」标签替它背了书。
它进去之后干了三件事。第一,偷信息:主机名、用户名、公网 IP、你的 Git 邮箱,还有最多 40 个名字里带 KEY、TOKEN、SECRET 的环境变量——你 .env 文件里那排密钥,基本一锅端。第二,往 authorized_keys 写入攻击者自己的公钥,等于给你家大门配了一把他的钥匙,以后随时能进来。第三,开一条反向 SSH 隧道,从里面把门撬开。
最狠的地方在于:你什么都没点过。装过正版 Claude Code 的开发者,扩展市场会自动更新,毒是自己送上门的。你以为的「保持最新」,在 10 月 29 日那天上午,等于亲手把后门拉进了自己的开发机。
那个时间窗里碰过这个扩展的人,现在就别干别的了——光卸载没用,密钥已经在人家手里,轮换、查日志,一样都不能省。

三层持久化,删扩展等于没删
先把最关键的一句说死:卸载扩展,等于什么都没删。
payload 根本没住在扩展里。它在扩展运行的十几秒里就把自己搬了出去,变成你机器上几个独立的脚本。你把扩展删得干干净净,那些脚本还在后台一圈一圈地跑。
具体怎么钉死一台机器的?三个系统三套手法。
macOS 上,它写了一个 LaunchAgent,文件名伪装成 com.apple.sysond.plist——这名字一看就是系统自带的,你翻目录时压根不会多看一眼。Linux 上走 crontab 的 @reboot,重启一次它就活一次。Windows 上是计划任务加启动脚本。三套方案干同一件事:开机自启,永不下线。
然后是隧道脚本。它每隔约 60 秒向攻击者服务器重连一次——断网、休眠、杀进程,都没用,一分钟之后它自己爬回来。这也是为什么有人「杀了进程以为没事」,第二天一看又在线。
攻击者还塞了一把 SSH 公钥进你的 authorized_keys,注释是 svc-telemetry,伪装成遥测服务。有这把钥匙,不需要密码就能登你的机器。
清理清单,一条条来:
先删公钥。authorized_keys 里凡是带 svc-telemetry 字样的整行删掉。三个系统的持久化项——那个假 LaunchAgent、crontab 里的 @reboot 行、Windows 计划任务——逐个移除。再找出隧道进程杀掉,注意看它会自动重启,删干净持久化项之前杀了也白杀。最后,轮换你机器上存过的所有凭据:SSH 私钥、API token、浏览器里记住的密码。后门开过多久,这些都当已泄露处理。
一句话:这次自查的唯一标准,是看你有没有在 10 月 29 日那个时间窗里装到 2.1.312 或 2.1.313。装过,就按上面全做;没装过,今晚能睡个安稳觉。

响应快,但有一个细节漏了
Cursor 的处置确实挑不出毛病。检测、下架、关掉整个 Marketplace、审计确认其他扩展没被动过、轮换密钥、重建上线,还联合云服务商把攻击者的服务器摁死了。现在反向 shell 打不通,回传也失效了。单看响应速度,这套动作接近满分。
但 Phorion 的独立分析里,有一个被所有人漏掉的细节。
恶意代码在 macOS 上有个 bug:检测系统权限的命令写错了,普通用户机器上攻击者其实登不进来。听起来像好消息——多数人中招了也没被远程控制。
问题在于,SSH 密钥和那套持久化,照样原封不动写进了你的机器。
换句话说,这次没有大规模失守,靠的是攻击者自己代码写崩了,而非任何一层防线起了作用。响应再快,治的也只是出口——11 个小时,足够把钥匙种进全球几十万台开发机。等下次代码没 bug,你猜响应还来得及吗?
「运气好」从来就不是安全机制。这是争论的核心:你觉得这是教科书级响应,还是防线压根不存在?评论区见。

AI 工具链,成了最顺手的靶子
HN 上那个主帖,719 分。这是安全圈用脚投出来的票。
为什么一个 VS Code 扩展被投毒能冲上首页?因为看到那条帖子的人,几乎在同一秒意识到了同一件事:AI 开发者是这个星球上被打了引号的「高危人群」——装扩展最勤、机器上密钥最多、警惕性最低。
传统供应链攻击长什么样?去年 vscode-history 那次,攻击者潜伏了小半年,收割的是普通开发者。这次完全不是一回事。你每天让 AI 编程工具自动更新,权限给的是整台机器——读写文件、跑命令、连你的 API key。扩展更新一次,就等于一次自动软件安装,而你压根没看过它装了什么。
越频繁,越危险。
Claude Code 这种顶流扩展,就是完美载体:装机量巨大、更新频繁、用户已经习惯「无脑信任」。攻击者不需要骗你点钓鱼链接,他只需要在某一次更新里塞一段代码,剩下的事你自己完成——你打开编辑器,它就上线。
但最让人睡不着觉的,是那个至今没人回答的问题:入口在哪?是发布账号被黑、发布流程被篡改,还是整个 Marketplace 被攻破——没有答案。多少台机器装了带毒版本,也没有数字。
**连入口都定位不了,就意味着下次还会从同一个地方进来。**这不是「修好了」能盖过去的事。你机器上那个自动更新的图标,没有任何变化。

今天就查,别等下一次
现在就做三件事。第一,查 ~/.ssh/authorized_keys 有没有注释为 svc-telemetry 的公钥——10 月 29 日装过 Claude Code 2.1.312/2.1.313 的人必须查,光卸载扩展等于没清理。第二,自查持久化:macOS 看 LaunchAgents 里的 com.apple.sysmond.plist,Linux 看 crontab 的 @reboot,Windows 看计划任务 SysMon,有就删,然后把 Git 凭据和环境变量里的 token 全部轮换一遍。第三,把「装扩展不过脑子」的流程改掉:关键 AI 扩展锁版本号、走私有 registry,自动更新别直接打到开发机。这次的攻击者撤了,通道还开着——下一个动手的人不会提前打招呼。
留言区站个队:你团队的开发机,装扩展时是默认信任 Marketplace,还是先过一遍私有源审计?















































































