Cursor官方插件被调包:Claude Code扩展暗藏SSH后门

Cursor扩展市场的Claude Code插件被换成恶意版本约11小时,最多5000名开发者受影响。
文章复盘了一起发生在Cursor扩展市场的供应链攻击:太平洋时间10月29日凌晨至下午,一个发布者名称真实可信的Claude Code扩展被替换为篡改版本,持续约11小时,可能影响多达5000名开发者。恶意代码在编辑器加载时即自动执行,先收集主机信息并扫描环境变量中的密钥与令牌,再向SSH授权名单植入伪装为SBC Telemetry的公钥,最后尝试建立反向隧道并设置持久化。由于隧道需要管理员权限且代码存在缺陷,多数情况下未能打通,但凭证已外泄、后门已埋下。文章强调卸载扩展不足以清理,发布者名称真实让传统判断失效,自动更新与AI智能体的分发方式进一步放大了风险,并给出检查与清理建议。
AI编程工具的安全边界,可能比我们想象的更脆弱。最近,一起发生在Cursor编辑器扩展市场的供应链攻击,给所有依赖AI辅助编程的开发者敲响了警钟:一个由官方商店分发、发布者名称毫无破绽的Claude Code扩展,在短短约11个小时内被替换成恶意版本,悄悄在开发者机器上植入SSH后门,影响人数可能高达5000人。
事件回顾:一场“冒牌阿姨”式的供应链攻击
据B站UP主在视频中的梳理,事件发生在太平洋时间10月29日凌晨2点多到下午1点半,Cursor自家扩展市场中的Claude Code扩展被替换为篡改版本,持续约11个小时。Cursor官方通报确认,这个恶意版本并非由Anthropic开发。
UP主用一个生动的比喻解释了攻击逻辑:你在家政平台约了一位口碑极好的阿姨,工牌、公司、照片全对得上,你让她进门,她就能在你家走动、翻文件、跑命令——这是正常插件的工作方式。但在这11个小时里,平台派来的是一个穿着真工牌的冒牌阿姨,而且她不等你吩咐,进门就动手。
安全公司Foreign(文中提及)发现,编辑器一加载这个恶意文件,代码就自动执行,用户无需与Claude进行任何交互。

恶意代码做了什么:抄清单、配钥匙、挖地道
根据UP主的拆解,这个冒牌扩展执行了三步操作,每一步都指向长期控制。
第一步:环境侦察与数据外传
恶意代码启动后首先“抄清单”:收集主机名、用户名、操作系统类型、Gate邮箱、公网IP等信息并外发。更隐蔽的是,它会扫描用户环境变量中最多超过40个标签,专门筛选名称类似密钥、令牌、密码、云账号的条目。柜子没打开、钱没拿走,但哪个抽屉放存折,攻击者已经门清。
第二步:植入SSH授权后门
接着,它往用户的SSH授权名单里添加一把攻击者的公钥,相当于在你家钥匙板上偷配了一把钥匙。这把钥匙还贴了一个伪装标签——SBC Telemetry,意为“服务遥测”,听起来与正经软件无异。

SSH(Secure Shell)是开发者远程登录服务器、传输代码最常用的加密协议,其身份验证依赖密钥对:公钥存放在服务器的 ~/.ssh/authorized_keys 文件中,私钥留在本地。只要某把公钥出现在授权名单里,持有对应私钥的人就能以该用户身份登录,无需再输入密码。因此,向 authorized_keys 写入一条攻击者公钥,等同于给攻击者开了一个永久免密入口,且不会触发任何登录告警。攻击者常把公钥注释字段伪装成系统组件名(如本例的 SBC Telemetry),让受害者在查看文件时误以为是正常配置。排查时应逐条核对注释与指纹,而非只看文件名。
第三步:建立反向隧道与持久化
恶意代码还试图从用户机器向外打通一条反向隧道,连到攻击者服务器。如果打不通,就每60秒重试一次。同时它设置了持久化机制:在Mac上使用类似苹果系统自带服务的名称,在Windows上创建名为Sysmon的计划任务,确保电脑重启后依然存活。
UP主指出,好消息是这条隧道大多数情况下没能打通,因为开启SSH服务需要管理员权限,加上恶意代码自身存在编写错误,这一步卡住了。但钥匙已经挂上、闹钟已经定好、清单已经寄出——风险并未解除。

反向隧道是指由内网机器主动向外部服务器发起连接,再把该连接转化为可双向转发的通道(常用 SSH 的 -R 参数或类似工具实现)。与外部直接连入内网不同,反向隧道利用的是内网机器“允许主动出站”这一几乎不被防火墙拦截的特性,因此常被恶意代码用来绕过边界防护、把内网服务暴露给攻击者。本例中隧道需要目标机器开启 SSH 服务,而这通常要求管理员权限,加上代码本身存在缺陷,导致多数情况下未能打通——这也是本次事件损失相对有限的关键原因之一。
持久化(Persistence)是攻击链中的标准环节,目的是让恶意代码在进程结束、机器重启或用户卸载原始载体后依然存活。常见手法包括:写入系统计划任务(Windows 的 Task Scheduler、Linux 的 cron)、注册为系统服务(macOS 的 launchd、Windows 的 Service)、修改启动项或 shell 配置文件等。本例在 macOS 上借用与系统自带服务相似的命名,在 Windows 上创建名为 Sysmon 的计划任务——Sysmon 本是微软官方系统监控工具的常见名字,用它可以降低被人工察觉的概率。这也解释了为何“卸载扩展”不等于清理干净:计划任务独立于扩展存在,必须单独删除。
清理难点与官方响应
一个容易被忽视的细节是:卸载扩展不等于清理干净。Cursor官方原话是,仅卸载扩展可能不够,它留下的脚本在卸载后仍可能继续运行,计划任务是在恶意代码离开前设定的,人走了闹钟照样响。
事件被发现后,Cursor先下架了恶意扩展,随后关闭整个扩展市场,更换密钥并重建后才重新上线,攻击者的服务器也被拔除。Anthropic方面表示,并非其系统被黑,官方渠道版本不受影响,只影响Cursor用户。但冒牌货究竟如何混入平台,两家公司至今未作说明。
真正值得警惕的:发布者名字是真的
UP主特别强调了一位安全研究员的观点:这回根本没有“冒充”,发布者是真的,看名字一点用都没有。这意味着传统“看发布者是否可信”的安全直觉在供应链攻击面前失效。
更深的隐患在于分发方式的变迁。现在安装和更新插件,越来越多依赖自动更新和AI智能体,没有人盯着。一个写代码的插件突然往电脑里塞SSH密钥,本应在几秒钟内被抓住,但现实是它存活了11个小时。

如果你用过Cursor,该做什么
UP主给出了具体建议:如果在10月29日前后安装或更新过Claude Code扩展,应检查SSH授权名单中是否存在SBC Telemetry这个名字。Cursor官网提供了一行检查命令和清理脚本。如果发现异常,除了清理,还应使用另一台干净的电脑更换所有能换的密码和令牌。
没有使用Cursor的开发者同样值得自查:编辑器里装了多少扩展,有多少开启了自动更新。在AI工具深度嵌入开发流程的今天,供应链安全已经不再是遥远的话题。
相关推荐

科幻小说对AI的预测有多准?
科幻小说对AI的预测有多准?本文结合Hacker News讨论,分析科幻作品在AI发展中的远见与盲区,探讨其真正价值在于启发思考而非精准预测。

SwarmEvolve:潜空间智能体集群加速进化搜索
SwarmEvolve框架让数百个低成本智能体在潜空间中集群推理,通过KV缓存共享信息,在数学发现和科学计算问题上实现快速进化搜索,中位数仅3-8分钟达到其他框架60分钟的最佳分数。

trainlint:静态检查揪出不会崩溃的 ML 训练 Bug
trainlint 是一个静态检查工具,能找出不会报错的机器学习训练 bug,包括数据泄漏、eval 模式残留、softmax 与 CrossEntropyLoss 冲突等十四类问题。本文介绍其原理、验证结果与局限。