BLOG

热点跟踪 031|Claude Code 扩展在 Cursor Marketplace 被植入后门

永亮说AI
AI
广告 · Advertisement

热点跟踪:热点发布 × 技术判断 × 实用建议。

10 月 30 日,安全公司 Phorion 披露一起针对 Cursor 自有扩展市场的供应链攻击:Anthropic 官方 Claude Code 扩展的两个版本被植入后门,约 5000 名用户暴露在风险中。相关讨论迅速登上 Hacker News 热榜,截至当日已有约 908 个 upvote 和 533 条评论,核心焦点集中在「扩展市场的审核机制为何会让真 publisher ID 发布恶意更新」。对很多把 Claude Code 当作日常 AI 编程助手的开发者来说,这次事件敲响了供应链安全的警钟,也提供了一个重新审视开发环境信任边界的契机。本期内容基于 Phorion 报告、Cursor 安全公告及 Anthropic 员工在 HN 的回应整理,具体技术细节以官方最终说明为准。

发生了什么

恶意版本为 anthropic.claude-code 2.1.312 和 2.1.313,分发渠道是 Cursor 自有的 VS Code Extension Marketplace,而非官方 VS Code Marketplace 或 OpenVSX。Cursor 给出的暴露窗口约为太平洋时间 10 月 29 日 02:27 至 13:35,总长约 11 小时,最多约 5000 名用户可能受到影响。

与一般钓鱼或名称混淆攻击不同,这次更新直接使用了合法的 publisher ID。攻击者获得了向 Cursor Marketplace 发布 anthropic.claude-code 更新的权限,用户在自动更新时几乎没有理由怀疑。Phorion 在 10 月 30 日发文后,Cursor 很快确认事件并下架恶意版本,暴露窗口事实上被控制在半天以内。

Payload 在扩展模块加载时即执行,早于正常的 activate 回调,无需用户交互。它首先收集主机名、用户名、操作系统、架构、home 目录、当前工作目录、全局 Git 邮箱,以及匹配 KEY、TOKEN、SECRET、PASS、AWS、GCP 等模式的环境变量名。收集到的信息通过明文 HTTP 发送到 134.209.82.225:8099/beacon。随后,它把攻击者的 Ed25519 公钥以 svc-telemetry 为注释追加到 ~/.ssh/authorized_keys,并尝试开启本地 SSH 服务,再建立到同一服务器的反向 SSH 隧道。为了长期驻留,它在 macOS 上写入 LaunchAgent,在 Windows 上创建计划任务并辅以 Startup 脚本,在 Linux 上写入 crontab,后台脚本每约 60 秒重试隧道。

其中,开启本地 SSH 服务需要管理员权限,普通权限下难以触发反向 shell,但信息收集、SSH 公钥植入和持久化在低权限下即可运行。这意味着即便用户平时以普通权限使用编辑器,也可能已经被外泄主机信息并留下后门。对于使用 Claude Code 的开发者来说,恶意代码可能在打开项目的瞬间就已完成信息收集。更棘手的是,VS Code 扩展运行在 Node.js 主进程环境中,理论上可以调用 fs、child_process、net 等模块,这种高权限上下文一旦被恶意代码利用,几乎等同于在本地执行任意代码。Phorion 之所以能够定位到 beacon 服务器,正是因为 Payload 使用明文 HTTP 回连,攻击者的基础设施直接暴露在外。这种不加密的外联方式虽然降低了攻击者的隐蔽性,却也让大量主机在数小时内完成了信息回传。

官方口径对不上

Anthropic 方面迅速澄清:这不是 Anthropic 系统或员工电脑被入侵,2.1.313 也从未在 OpenVSX、VS Code Marketplace 或 Anthropic 官方渠道发布,仅 Cursor Marketplace 受影响,下一版本将跳过 2.1.313,直接发布 2.1.314 以作区分。

Cursor 的处置同样迅速:下架恶意版本、关闭整个 marketplace、审计访问日志、确认无其他扩展被篡改、轮换密钥、重建 marketplace,并使攻击者服务器下线,向受影响用户主动 outreach。

但快不等于无责。这次事件的关键不是 Anthropic 的代码被改写,而是 Cursor Marketplace 的发布权限被攻破。攻击者能够以官方 publisher 身份推送更新,说明 marketplace 的访问控制和审核流程存在单点风险。用户通常信任已安装扩展的自动更新,却很少校验签名或来源。更麻烦的是,卸载扩展未必清除威胁:持久化脚本落在扩展目录之外,即使删掉扩展,后门仍可能继续运行。

这件事还暴露出一个更深层的问题:扩展市场的「官方 publisher」身份并不等同于安全。只要发布端点被拿下,用户看到的更新提示就和正常更新没有区别。Cursor 关闭整个 marketplace 虽然是审慎之举,但也说明它无法在短时间内区分哪些 publisher 可信、哪些不可信。这种「一刀切」恰恰反证了原有审核机制的薄弱。Anthropic 跳过 2.1.313 的做法更像是一个版本标记动作,它无法解决第三方 marketplace 被攻破的问题,只是帮助用户区分官方渠道的版本号。而 Cursor 始终没有说明攻击者是如何获得发布权限的,这一点对于评估事件根因至关重要。在供应链攻击频发的背景下,单靠版本号跳跃和平台下架,已经不足以让用户恢复信任。

评论区怎么说

Hacker News 上的讨论主要围绕几个疑问展开。

第一,其他渠道是否安全。有评论称恶意版本也出现在 OpenVSX 或 NPM。Anthropic 员工作明确否认;Phorion 则表示 VS Code/NPM 上的 2.1.313 也曾被下架,但未必是同一恶意包。官方口径将风险限定在 Cursor Marketplace,普通用户应以官方说明为准。

第二,审核机制为何失效。高赞评论指出,这不是一次普通的 typosquat 或假冒包攻击,而是直接利用合法 publisher ID 的供应链攻击。当攻击者能向真正的扩展推送更新时,再勤快的用户也难以靠肉眼识别。社区普遍认为,Cursor Marketplace 关闭整个市场是审慎之举,但也暴露出第三方扩展市场在发布权限管理上的普遍薄弱环节。

第三,关于自动更新的信任边界。不少网友表示,自己过去会无条件允许 IDE 扩展自动更新,因为默认官方 publisher 可信。这次事件之后,更多人开始讨论是否应该关闭自动更新、手动审核版本差异,或者等待厂商提供更强的签名验证。还有评论提到,类似风险并不限于 Cursor,任何基于 VS Code 生态的第三方市场都可能面临相同问题,关键在于是否有能力在发布流程的每一个环节做身份和完整性校验。

第四,对受影响用户的同情与担忧。一部分评论指出,许多开发者的工作电脑中保存着大量密钥、API token 和生产环境配置,一旦被植入 SSH 后门,影响可能远超单个扩展。也有人提醒,普通开发者并不是安全专家,要求每个用户都手动审查扩展更新是不现实的,最终还是需要平台方提供更可靠的发布保障。

第五,对供应链安全制度的呼吁。有网友提到,软件供应链已经多次出现类似事件,从 npm 到 PyPI 再到 VS Code 扩展市场,核心矛盾都是发布门槛过低而运行权限过高。呼声最高的方案包括:publisher 端强制双因素认证、扩展包签名、marketplace 侧的内容审计,以及运行时的最小权限沙箱。这些建议能否被 Cursor 和其他 marketplace 采纳,将直接影响开发者未来对第三方扩展市场的信任程度。

普通用户能做三件事

  1. 确认安装来源与版本。打开 Cursor 或 VS Code 的扩展面板,查看 anthropic.claude-code 的版本号。如果你曾在 10 月 29 日 02:27–13:35 PT 之间从 Cursor Marketplace 安装或更新到 2.1.312 / 2.1.313,应视为高风险。如果你不记得来源,可以检查扩展的 publisher 字段是否为 anthropic.claude-code,并查看安装日志或 marketplace 历史。对于其他扩展,也建议在这个时间点之后检查是否有异常更新记录。不确定的话,可以暂时禁用自动更新,改为手动安装来自官方渠道的版本。Cursor 用户可以在扩展详情页查看安装来源,若显示 Marketplace 为 Cursor 自有源,则在窗口期内更新过的人都应排查。

  2. 检查主机残留。重点查看 ~/.ssh/authorized_keys 中是否出现注释为 svc-telemetry 的 Ed25519 公钥;查看 ~/.config/ 下是否有 .smt、.smtk、smt.cmd 等可疑文件;同时检索是否存在连接 134.209.82.225:8099 的网络记录。在 macOS 上还要检查 ~/Library/LaunchAgents 目录,在 Windows 上检查任务计划程序和 Startup 文件夹,在 Linux 上检查 crontab 和 systemd user 单元,确认是否有可疑条目。如果发现未知 LaunchAgent 或计划任务,即使名字看起来正常,也要先禁用再溯源。清理后建议重启一次,观察可疑进程或启动项是否会复现。

  3. 清理后不要只卸载扩展。由于持久化脚本在扩展目录外存活,建议受影响用户轮换 SSH 密钥、云凭据和重要账号密码,必要时重建主机。对于无法确定是否被植入持久化的机器,宁可过度处理,也不要心存侥幸。如果这台机器上运行过生产代码或接触过敏感密钥,优先隔离并重装系统,而不是简单删除扩展后继续使用。企业用户还应该检查 CI/CD 流水线、Docker 镜像构建机和共享开发机,避免横向扩散。最后,建议把这次事件纳入团队的应急演练,明确扩展安装白名单和密钥轮换流程。重装系统前,先导出必要的项目代码和配置文件,并避免从备份中恢复可能已被感染的设置目录。

结语

Claude Code 后门事件不是简单的一次恶意扩展上传,而是第三方扩展市场供应链被突破的典型案例。Anthropic 的官方渠道和代码仓库没有失守,失守的是 Cursor Marketplace 对 publisher 身份的发布控制。5000 名用户、11 小时窗口、模块加载即触发,这几个数字说明:在 IDE 插件这种高权限环境里,自动更新信任链一旦断裂,后果会被迅速放大。

目前恶意版本已下架、marketplace 已重建、攻击者服务器已下线,但这只是事件响应的终点,不是风险消失的起点。对普通用户来说,最实际的启示是:扩展市场和自动更新不是天然可信的,必要时需要回到本地证据做判断。保持怀疑、保留日志、定期轮换密钥,是开发者在当前扩展生态里最现实的自保策略。对行业而言,这次事件再次说明,供应链安全不能只靠厂商响应速度,更需要在发布权限、签名验证和扩展运行时隔离上做更扎实的设计。下一次,被攻破的可能是任何一个 popular 扩展;真正的问题不是恶意包能跑多快,而是我们的开发环境是否还默认相信每一个打着官方旗号的更新。在 AI 编程助手越来越深入开发环境的今天,这个信任问题值得被反复追问。

参考来源

  • Phorion 博客:Official Claude Code VSIX Compromise(2026-10-30)
  • Cursor 安全公告(2026-10-29)
  • Hacker News 讨论:Claude Code extension backdoor on Cursor Marketplace
  • Anthropic 员工作者在 Hacker News 上的回应

署名:永亮

广告 · Advertisement

常见问题

哪些用户受影响?

在2026-10-29 02:27–13:35 PT期间从Cursor Marketplace安装或更新到2.1.312/2.1.313的用户,最多约5000人。

卸载扩展能清除后门吗?

不能。恶意代码在扩展目录外写入持久化脚本,需要检查~/.ssh/authorized_keys、LaunchAgent/计划任务和crontab。

装过恶意版本的用户应该怎么自查和处置?

三步自查:检查 ~/.ssh/authorized_keys 有无陌生公钥;翻 LaunchAgents、计划任务和 crontab 找可疑持久化项;排查异常外连。窗口期内装过 2.1.312/2.1.313 的一律按高危处理,轮换相关密钥——只卸载扩展清不掉后门。