一个名为 refbase-mcp 的软件包,借用了如今代理工具所使用的 Model Context Protocol 命名惯例,被作为恶意软件发布到 npm,获得了 298 次下载,并在大约一个半小时后被下架并替换为一个安全占位 stub。
时间线,来自注册表本身
1.0.0 版本于 7 月 31 日 UTC 时间 20:23:38 上线。到 UTC 时间 21:54:59 时,它被 0.0.1-security 版本替换,后者是 npm 428 字节的安全占位模板。这意味着 92 分钟的暴露窗口。通告则在 UTC 时间 22:00:13 发布。这三个时间戳都来自注册表和通告 API,而不是任何报道。
这个名字在做什么
-mcp 后缀就是诱饵。代理工具链会像对待其他依赖一样安装 MCP 服务器,而这种命名惯例如今已经足够成熟,值得被冒充。记录中没有任何内容表明该软件包确实是一个 MCP 服务器——这个后缀只是命名选择,而不是功能证明。
那句吓人的话是模板
该通告称,任何安装了该软件包的机器“都应被视为已完全遭到入侵”,并且所有密钥和凭证都应轮换。这是 npm 针对此类事件采用的通用恶意软件模板,适用于每一次同类下架。没有公布载荷分析,因此该软件包究竟做了什么并不在记录中——把这段模板表述当作针对该软件包的结论,是不正确的。
298 次下载并不等于 298 个受害者
这一曲线——7 月 31 日 254 次,8 月 1 日 44 次,更早的每一天都是零——正是一个全新软件包在注册表镜像、安全扫描器和 CI 缓存发现它时会呈现出的样子。把这一数字直接当作感染人数,会大幅夸大事实。更准确的解读是:下架流程在 92 分钟内完成,而 92 分钟足以触达构建系统。
