事件经过
2026 年 6 月 17 日(01:12–02:36 UTC),攻击者滥用一个休眠的前贡献者 npm 账户('ehindero',约 16 个月未活跃且从未撤销作用域访问权限)重新发布了 @mastra npm 作用域中的 141–143 个包——包括 @mastra/core、mastra 和 create-mastra——每个包都注入了一个新依赖项:easy-day-js。该包是流行的 dayjs 日期库的恶意克隆:干净版本 (1.11.21) 在一天前发布作为掩护;恶意版本 (1.11.22) 随后发布,@mastra 包引用 ^1.11.21,导致 npm 的 caret 范围解析静默拉取 1.11.22。恶意安装钩子在任何运行 npm install 的机器上下载并运行了加密货币窃取远程访问木马 (RAT)。npm 在检测后撤回了恶意包版本;Mastra 撤销了被劫持的账户并发布了干净的前向滚动版本。
影响分析
Mastra 是一个广泛使用的开源 AI 代理框架,用于在 JavaScript/TypeScript 中构建 LLM 驱动的应用程序。危害 @mastra/core 和父包 mastra 使攻击者能够在安装该框架的每个开发人员工作站和 CI 运行器上执行代码。攻击技术——陈旧的贡献者访问权限 + 类似域名的传递依赖项 + caret 范围自动升级——无需 npm 本身的漏洞,并且可以对任何具有类似访问卫生漏洞的 AI 框架生态系统复制。
攻击途径
攻击者劫持一个保留作用域发布权限的陈旧 npm 贡献者账户,重新发布 143 个包,注入恶意传递依赖项,通过 postinstall 钩子在 npm install 时投放 RAT
受影响系统
@mastra npm 作用域包(143 个包,包括 @mastra/core、mastra、create-mastra)——恶意版本发布于 2026 年 6 月 17 日;easy-day-js@1.11.22(恶意依赖项)
缓解措施
将所有 @mastra 包升级到 2026 年 6 月 17 日后发布的干净前向滚动版本;审计在妥协窗口期间运行 npm install 的开发人员机器和 CI 运行器以查找 RAT 持久性;在受影响的机器上撤销并轮换所有凭证和令牌。参见 SafeDep 分析:https://safedep.io/mastra-npm-scope-takeover-supply-chain-attack