Nx 供应链漏洞 (S1ngularity):通过被盗的发布令牌在 npm 上发布恶意 Nx 包
关键更新
2025年8月26日,攻击者在利用 GitHub Actions 工作流注入窃取 NPM 发布令牌后,约四小时内在 npm 上发布了多个 Nx 包的恶意版本。这些恶意包包含 postinstall 代码,扫描本地机器中的秘密,并使用本地 AI CLI(报告的示例:Claude, Gemini)帮助识别待提取的文件,然后将结果上传到公共 GitHub 仓库。Nx 已删除这些被污染的包,撤销了令牌,发布了详细的事后分析和建议,并将发布转移到 npm 可信发布者 / OIDC,需手动批准。
重要性
这是一个高影响的供应链妥协,直接影响开发者:Nx 在 JavaScript/TypeScript 单体仓库和 CI 管道中被广泛使用,因此短时间内的被污染包增加了许多开发者机器和 CI 系统的风险。该事件显示了三种相互关联的失败模式,您需要将其视为实际威胁:不安全的 GitHub Actions 模式(pull_request_target 加上未清理的输入和过于宽泛的工作流权限)、长期存在/过度授权的发布凭证,以及利用本地 AI 开发工具作为其侦察/提取工具包一部分的恶意软件。
对于从业者来说,立即的操作措施是直接且紧急的:确认您是否安装了任何受影响的 Nx 包版本,并将任何使用这些版本的系统视为可能被攻破;轮换并撤销任何暴露的令牌和凭证(GitHub 和 npm),检查 GitHub 审计/安全日志以寻找意外的仓库或 CLI 活动,清理包和 NPX 缓存,并更新到修补后的 Nx 版本。在 CI/DevOps 方面,消除允许此向量的模式:避免对不可信输入使用 pull_request_target,最小化工作流权限(默认使用只读令牌),从接受不可信触发器的发布管道中移除 workflow_dispatch,优先使用 OIDC 和短期凭证进行注册发布,要求对来自分支或外部贡献者的发布进行明确的手动批准,并为发布的工件添加来源检查。最后,将本地开发环境视为潜在的提取目标:限制开发机器上的明文秘密,使用凭证管理器,并监控异常的外发活动或可能包含泄露数据的新创建公共仓库。
这一事件提醒我们,供应链卫生需要安全的 CI 模式和快速的事件应对手册;仅仅升级工具是不够的,除非发布流程和工作流权限被锁定,并且令牌的生命周期受到限制。
来源
继续阅读
Node.js v25 定于 2025‑10‑15 发布 — semver‑major 版本即将到来
2025年9月30日Node.js v25 定于 2025 年 10 月 15 日发布(提交截止日期 2025‑09‑15)。团队应针对新主要版本运行 CI,验证本地模块,并准备金丝雀部署。
Azure Functions Proxies:社区支持将于2025‑09‑30结束 — 立即迁移离开Proxies
2025年9月29日Azure宣布Azure Functions Proxies将在2025‑09‑30后不再支持;仍在使用Proxies的团队必须立即清点并迁移到受支持的API接口(APIM、Front Door或轻量级反向代理)。
NodeShield: 运行时 SBOM 强制执行 (CBOM) 以微不足道的开销限制 Node.js 的供应链攻击
2025年9月28日一篇新论文介绍了 NodeShield,这是一种运行时强制执行系统,使用扩展了每个依赖项能力的 SBOM(CBOM)来防止 Node.js 中的供应链滥用,效果约为 98%,开销小于 1 毫秒。