Neodrop
Create
FeedDiscoverMy ChannelsAuto-publishJoin Our Discord
FeedDiscoverCreateMy Channels
1/5
2026-10-30

2.1.313,官方记录里没有这个版本

深度产品观察
深度产品观察@JamesChenX
10 月 30 日,安全公司 Phorion 与威胁情报站 OpenSourceMalware 先后拆开了同一个包:Open VSX 上的 anthropic.claude-code 2.1.3131。扩展的主体与官方版本一致,打包进去的二进制也没有改动,唯一的差别是 extension.js 的最前面多了 66 行立即执行的函数2。Node 加载这个文件,这 66 行就跑完了,扩展自己的 activate 还没有被调用——你不需要打开任何对话。
这 66 行做的事很具体:往 ~/.ssh/authorized_keys 末尾添一把注释为 svc-telemetry 的 Ed25519 公钥,按平台试着启动 sshd,再用 -N -R *:0:localhost:22 连到 134.209.82.225 的 22 端口,换回一条能落到本机 22 端口的隧道。之后它在 macOS 写 LaunchAgent、在 Linux 写 @reboot 条目、在 Windows 建计划任务,1.5 秒后把主机名、用户名、git 全局邮箱、公网 IP 与最多 40 个环境变量名 POST 到同一台机器的 8099 端口。全程没有下载二段载荷,也没有提权漏洞:权限不够就跳过,接着往下走。
Phorion 在 macOS 上找到一处实现缺陷。以普通用户运行 systemsetup -getremotelogin,输出是「You need administrator access」,并以 0 退出;脚本判断的是这段输出里有没有 Off,于是开远程登录那一步被跳过,公钥与持久化照旧落盘。这意味着在本来没开远程登录的 Mac 上,入站那一段可能不通;但 Linux 与 Windows 的分支没有这层运气,用户原本开着远程登录时后门也在等。
更值得看的是版本号。本刊核了四处记录:GitHub 的标签与 CHANGELOG 从 2.1.312 直接跳到 2.1.3143;npm 上 2.1.313 的版本端点与 tarball 都是 4044;VS Code 扩展市场的版本历史同样从 312 到 314,公开清单里没有这一版5。只有 Open VSX 有过它,而它现在是 404,版本清单跳过这一号6。当天另有一家第三方独立访问了三个注册表,得到的序列一样7。
这要小心解读。Phorion 写 Anthropic 还撤下了 npm 与 VS Code 上的 2.1.313,但公开面分不出「撤掉」与「从来没有」。Open VSX 的文档写明,被删除的版本会永久占住版本号,任何人——包括原发布者——都不能再用它发布不同内容,而公开接口对已删版本只回一句 not found,不给时间戳8。所以三个渠道都查不到 2.1.313 的发布时间,暴露窗口到今天仍无法确定。
它也不是绕过了审查。扩展在安装时不跑任何脚本:包清单里没有 install、prepare 或 postinstall,恶意行为发生在加载时。Open VSX 发布时的自动检查只有三类——泄露的密钥、已知恶意文件的哈希、名字是否与已有扩展太像——没有读代码这一项9。这 66 行不是骗过了谁,是没有谁在看它。
登记处其实把答案写在页面上。Open VSX 的接口里,这个扩展能查到的版本一律署同一个账号:publishedBy 是 igorkofman 的 GitHub 账号;抽到的五个版本,publishedWithTrustedPublishing 全是 false。命名空间 Anthropic 的 verified 为 true。文档对 verified 的定义是「命名空间有 owner,且发布者是它的成员」——它验的是名字,不是字节10。同一件产品的命令行包走的是另一条路:2.1.314 的 _npmUser 写着 GitHub Actions,带 trustedPublisher 与一个 OIDC 配置编号。一条链能追到一次构建,另一条只能追到一个人的登录。
尚未定下来的部分也要说清。到发稿为止没有第二份样本分析:两家给出的四样物证完全一致(extension.js 的 SHA-256、写进 authorized_keys 的公钥指纹、隧道私钥摘要、C2 地址),但样本来源都写着 Open VSX,用的是同一个哈希,更像同源复核而非各自独立取证。两家自己也有出入:Linux 开 sshd 的写法一处写三级回退、一处只写 systemctl;OpenSourceMalware 页面标的时间是 17:42,而 11:33 已经有人在 X 上贴出这个链接;同一家的博客说不知道谁被入侵,威胁报告页却写「the author of the VS Code extension was compromised」11。官方侧,Anthropic 的新闻页、研究页与状态页当天都没有对应条目,状态页写的是「No incidents reported today」,也没有 CVE12。
对读者来说,能自己核的两样是扩展面板里的版本号,与 extension.js 的 SHA-256(ecb58cb2…3bf15)。要清的要清四样:authorized_keys 里注释 svc-telemetry 的那把公钥、~/.config/.smt 与 .smtk、macOS 的 com.apple.sysmond.plist 或 Linux 的 @reboot 条目或 Windows 的 SysMon 任务、临时目录里的 .stk_*。卸载扩展不会带走它们。
对在扩展市场里发东西的团队,这一期的落点不在 Anthropic 身上:先看自己的版本能不能追到一次构建,还是只能追到一个同事的登录。

References

  1. 1
    Phorion · Official Claude Code Extension Compromise

    phorion.io

  2. 2
    OpenSourceMalware · Trojanized Claude Code Extension

    opensourcemalware.com

  3. 3
    anthropics/claude-code releases

    api.github.com

  4. 4
    npm registry

    registry.npmjs.org

  5. 5
    VS Code Marketplace

    marketplace.visualstudio.com

  6. 6
    Open VSX API

    open-vsx.org

  7. 7
    CellCog

    cellcog.ai

  8. 8
    Open VSX wiki · Deleting Extensions

    github.com

  9. 9
    Open VSX wiki · Publishing Extensions

    github.com

  10. 10
    Open VSX wiki · Namespace Access

    github.com

  11. 11
    OpenSourceMalware · threat report

    opensourcemalware.com

  12. 12
    status.claude.com

    status.claude.com

深度产品观察
深度产品观察@JamesChenX

This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.

Related content

Comments