跳到内容
返回文章列表
security4 min

npm 包 tensorlake 遭劫持:吊销令牌就删除主目录的 Shai-Hulud 蠕虫

tensorlake npm package hijacked: Shai-Hulud worm wipes your home folder if you revoke the token

KGA IT
2026-10-124 min
SecuritySupply ChainnpmMalwareAI Agents

发生了什么

2026 年 10 月 8 日 01:12 UTC,面向 AI 智能体的无服务器沙箱平台 SDK——npm 包 tensorlake 的 0.5.144 版本被发布,其中带有窃取凭证的 Shai-Hulud 家族蠕虫。该包每周下载量约 1.2 万至 1.8 万次。据维护者公告,该版本在线约 1 小时 40 分钟,遥测未显示有人使用。Socket 在发布 11 分钟 后就标记了该恶意版本。

据已发布的分析,Tensorlake 在 PyPI 和 Cargo 上的包未受影响。

如何入侵

攻击并非始于 npm,而是始于 GitHub:

  • 10 月 7 日,攻击者使用 一名维护者的管理员账户,通过网页界面 直接向 tensorlakeai/tensorlake 的 main 分支提交,没有拉取请求。
  • 八次提交调整了载荷,并在 package.json 中加入 preinstall 钩子。
  • 约 20 小时后,同一账户手动触发了 官方发布工作流。

结果,该包带着 有效的来源证明(provenance) 发布。正如 StepSecurity 所说,来源证明说明的是包 在哪里 构建,而不是代码是否安全。

恶意软件做了什么

  • preinstall 钩子运行一个混淆的加载器,下载 Bun 运行时并执行 856 KB 的载荷。
  • 窃取 npm 与 GitHub 令牌,云、Kubernetes 与 Vault 凭证,以及 AI 编程工具的配置文件。
  • 尝试 自我传播:重新发布用户的其他包,并以伪造作者"claude@users.noreply.github.com"和提交信息"chore: update dependencies"向其仓库提交 .claude 和 .vscode 文件。
  • 人质令牌: 安装一个监控程序,在最长 24 小时内每 60 秒检查一次被盗的 GitHub 令牌。一旦令牌被吊销,就删除主目录(Linux 和 macOS 上执行 rm -rf ~/)。研究人员对陷阱何时触发存在分歧。

这种双文件模式(setup.mjs 与 Math_Symbol.js)与 8 月针对 keyv 和 cacheable 包的攻击相同,均基于 TeamPCP 组织公开的"mini Shai-Hulud"代码。目前没有证据表明是同一团伙。

如果您安装了它

  1. 在吊销令牌之前先隔离机器,并结束监控进程,以免主目录被删。
  2. 将机器上的所有凭证视为已泄露:npm、GitHub、云和 AI 智能体配置,然后全部轮换。
  3. 检查仓库中是否有陌生作者的"chore: update dependencies"提交和新增的工作流。
  4. 检查您自己的包最近发布的版本。

教训

  • 对所有推送到 main 的操作强制审查,包括管理员。
  • 维护者账户使用 硬件密钥(FIDO2)。
  • 设置 冷却期,不立即安装刚发布的版本,并尽可能禁用安装脚本。
  • AI 编程工具已成为攻击目标:它们的配置中保存着高价值密钥。

来源


想保护您的软件供应链与流水线吗?KGA IT 提供免费咨询:kga-it.com

携手解决您的技术挑战

KGA IT Solutions 拥有 AI、云计算、DevOps 专业团队,为您的业务挑战提供最佳方案。

联系我们