文章总结: NPM为防御Shai-Hulud供应链攻击引入的措施存在PackageGate漏洞,黑客可通过Git依赖项绕过–ignore-scripts限制执行恶意代码。受影响工具包括pnpm、vlt、Bun和NPM。目前除NPM外,其他厂商已修复漏洞,NPM关闭相关漏洞报告。GitHub回应称安全是集体责任,建议采用可信发布等措施。 综合评分: 84 文章分类: 供应链安全,漏洞分析,漏洞预警,WEB安全
黑客可以通过 Git 依赖项绕过 npm 的 Shai-Hulud 防御机制
原创
ZM ZM
暗镜
2026年1月27日 08:44 北京
NPM 在“Shai-Hulud”供应链攻击后引入的防御机制存在漏洞,威胁行为者可以通过 Git 依赖项绕过这些机制。
这些漏洞统称为 PackageGate,它们存在于 JavaScript 生态系统中多个用于管理依赖项的实用程序中,例如 pnpm、vlt、Bun 和 NPM。
终端和供应链安全公司 Koi 的研究人员发现了这些问题,并已向供应商报告。他们表示,除 NPM 外,所有工具都已解决这些问题。NPM 则关闭了该报告,声称其行为“符合预期”。
脚本执行绕过
自我传播的 Shai-Hulud 供应链攻击最初于2025 年 9 月中旬影响了 npm ,并导致 187 个软件包被攻破。一个月后,该攻击卷土重来,新一轮攻击了 500 个软件包,后经评估,此次攻击暴露了超过 30,000 个自动生成的 GitHub 存储库中的400,000 个开发者机密信息。
针对 Shai-Hulud 攻击和其他供应链事件(例如“ s1ngularity ”和“ GhostAction ”),NPM 的运营商 GitHub宣布了一项实施额外安全措施的计划,并提出了几项缓解措施。
其中包括建议在安装期间禁用生命周期脚本(’–ignore-scripts=true’)以及启用锁定文件完整性和依赖项锁定。
Koi安全研究人员发现,当 NPM 从 Git 存储库安装依赖项时,恶意“.npmrc”之类的配置文件可以覆盖 git 二进制文件路径,即使“–ignore-scripts”标志设置为“true”,也会导致代码完全执行。
研究人员警告说:“我们有证据表明,过去曾有演员发布概念验证,滥用这种技术来创建反向外壳”,并强调这个问题不仅仅是理论上的。
对于其他 JavaScript 包管理器,可以通过单独的机制绕过脚本执行安全措施;此外,对于 pnpm 和 vlt,还可以绕过 lockfile 完整性。
Bun 在 1.3.5 版本中修复了影响它的缺陷,vlt 在 Koi 联系后几天内进行了修复,pnpm 发布了针对 CVE-2025-69263 和 CVE-2025-69264 下跟踪的两个缺陷的修复程序。
NPM的回应
Koi Security 将他们的发现以漏洞报告的形式提交给了 NPM 的 HackerOne,因为漏洞赏金范围明确涵盖了使用“–ignore-scripts”执行脚本。
尽管如此,npm 还是以用户有责任审查他们安装的软件包的内容为由拒绝了该报告,并且没有回应研究人员的多次后续努力。
BleepingComputer 联系了 GitHub 以就此事发表声明,一位发言人表示,他们正在努力解决该问题,因为 npm 正在积极扫描注册表以查找恶意软件。
GitHub 发言人告诉 BleepingComputer:“npm 生态系统的安全是一项集体努力,我们强烈鼓励项目采用可信发布和细粒度访问令牌,并强制执行双因素身份验证,以加强软件供应链。”
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:暗镜 ZM ZM《黑客可以通过 Git 依赖项绕过 npm 的 Shai-Hulud 防御机制》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论