FlawOpen

flawopen.com/Incidents/tensorlake-npm-install-hook-compromise-october-2026

● Tensorlake · CWE-506 · October 8, 2026 · 严重
安全研究 · FlawOpen

Tensorlake npm 0.5.144:恶意安装钩子

Tensorlake AI SDK 的恶意版本加入了 preinstall 加载器。维护者确认有人直接修改 main 并加强了发布流程;GitHub 恶意软件公告要求将已运行该代码的主机视为已遭入侵。研究人员将其加载器模式与 ChainDrop/Shai-Hulud 家族联系起来;GitHub 公告未确认这一归因。[1], [2], [3], [4], [5]

💡 通俗易懂的原理解析 (ELI5)

安装这个包就像接通一个会立即启动的设备:无需按按钮或实际使用它。npm 在有人导入 SDK 之前,就以安装进程的权限运行了恶意的预安装钩子。也就是说,触发点是安装动作本身,而不是之后导入或调用 SDK 功能。[3], [6], [1]

核心概念与专有名词

preinstall 生命周期钩子
npm 可在安装期间运行的脚本。Tensorlake 0.5.144 发布的清单通过该钩子启动加载器,因此无需先导入 SDK。[1], [6]
来源证明
关于构建产物来源和构建过程的证据。维护者称恶意版本带有 npm 来源证明;这并不能证明源代码安全。[2], [3]
安装脚本防护检查
当待发布清单声明安装生命周期脚本时,CI 会失败的检查。事件后,Tensorlake 将其与 npm ci --ignore-scripts 一同加入。[3]
恶意软件家族归因
StepSecurity 和 Socket 将加载器模式与 ChainDrop/Shai-Hulud 联系起来。GitHub 恶意软件公告没有指出具体家族,因此这项归因应注明来自研究人员。[4], [5], [1]

框架映射

  • 本指南所述弱点的 CWE 参考: CWE-506

事件演进时间线

2026 年 10 月 7 日

维护者的事件响应称,具有仓库管理员权限的账户将提交直接推送到 main。[2], [3]

2026 年 10 月 8 日

发布工作流发布了含恶意代码的 tensorlake@0.5.144;维护者称 npm 随后将其移除。[1], [2]

2026 年 10 月 8 日

维护者合并 PR #1016,恢复到最后一个干净提交,增加安装脚本控制,并将干净版本提升到 0.5.145。[3], [7]

攻击执行流程分解

步骤 1

仓库信任边界被绕过

维护者响应 PR 报告,管理员账户绕过常规 pull request 审查,直接向 main 提交更改。随后有人从该仓库手动启动发布。[2], [3]

步骤 2

软件包在安装时执行代码

研究人员发现 tensorlake@0.5.144 的 preinstall 钩子会启动加载器。代码继承安装进程的权限;用户无需先导入 SDK。[1], [4], [5], [6]

步骤 3

主机凭据和持久化受到威胁

GitHub 恶意软件公告要求将受影响主机视为完全遭入侵。StepSecurity 和 Socket 报告了凭据窃取和持久化,其中一个监控程序可能对令牌撤销作出破坏性反应。应将这些细节归于研究人员,不要假定每台主机都触发了所有能力。[1], [4], [5]

步骤 4

维护者恢复发布控制

响应撤销了恶意提交,加入 npm ci --ignore-scripts 和清单防护检查,加强仓库及发布保护,并用 0.5.145 替代恶意包。GHSA 未列修复版本,因为它记录的是恶意软件,而非通常意义上的易受攻击代码范围。[3], [7]

源代码对比:漏洞与安全实现

此 CI 对比依据维护者合并的 PR #1016;它不包含恶意包或 exploit。防护检查在安装前运行,拒绝发布清单中的安装钩子;ignore-scripts 可阻止 npm ci 执行依赖的生命周期脚本。维护者称项目测试和 SDK 构建在此设置下可运行。需要安装钩子的依赖可能受影响;显式调用的 npm test 等命令仍会运行其指定脚本。后续构建步骤应隔离,来源证明不能代替源代码审查。此代码片段并不完整:维护者的检查除了核对已声明的安装钩子,还会拒绝 typescript/lib/ 中的意外文件。[3], [6]

存在漏洞的实现
steps:
  - run: npm ci
加固后的安全修复
steps:
  - run: node scripts/check-no-install-scripts.mjs
  - run: npm ci --ignore-scripts

工程与系统安全加固清单

参考来源