根据 Nx"s1ngularity"NPM 供应链攻击的调查显示,数千个账户令牌和代码仓库密钥遭泄露。Wiz 研究人员事后评估,此次 Nx 安全漏洞在三个不同阶段共导致 2180 个账户和 7200 个仓库面临风险。Wiz 同时强调,由于许多泄露的密钥仍处于有效状态,攻击的影响范围仍十分广泛,且后续效应仍在持续显现。
Nx "s1ngularity" 供应链攻击详情
Nx 是一款流行的开源构建系统及单仓库(monorepo)管理工具,广泛应用于企业级 JavaScript/TypeScript 生态,在 NPM 包索引上的周下载量超过 550 万次。
2025 年 8 月 26 日,攻击者利用 Nx 代码仓库中存在缺陷的 GitHub Actions 工作流,在 NPM 上发布了恶意版本的 Nx 包,其中包含一个名为 "telemetry.js" 的安装后恶意脚本。
该恶意脚本是一款针对 Linux 和 macOS 系统的凭据窃取工具,试图窃取 GitHub 令牌、npm 令牌、SSH 密钥、.env 文件、加密货币钱包等信息,并将这些敏感数据上传至名为 "s1ngularity-repository" 的公共 GitHub 仓库。
此次攻击的特殊之处在于,凭据窃取工具会利用已安装的人工智能平台命令行工具(如 Claude、Q、Gemini 等),通过大语言模型(LLM)提示词搜索并收集敏感凭据与密钥。
Wiz 报告指出,攻击过程中提示词不断迭代更新,表明攻击者在通过调整提示词提升攻击成功率。
LLM 提示搜索和窃取凭证和其他密钥
Wiz 解释道:" 提示词的演变显示,攻击者在整个攻击过程中快速探索提示词调优方法。我们能看到‘角色提示’的引入,以及针对不同技术的具体描述程度变化。"
这些调整对恶意软件的攻击成功率产生了实际影响。例如,加入‘渗透测试’一词后,大语言模型明确拒绝参与此类活动,这一变化十分明显。
攻击影响范围持续扩大
第一阶段(8 月 26 日 -27 日)
被植入后门的 Nx 包直接影响 1700 名用户,泄露超 2000 个唯一密钥,并导致受感染系统的 2 万个文件被暴露。GitHub 在 8 小时后下架了攻击者创建的仓库,但数据已被复制。
第二阶段(8 月 28 日 -29 日)
攻击者利用泄露的 GitHub 令牌将私有仓库转为公开,并在仓库名称中加入 "s1ngularity" 字符串。这进一步导致 480 个账户(其中大部分为企业组织账户)沦陷,6700 个私有仓库被公开暴露。
第三阶段(8 月 31 日起)
攻击者将目标锁定在单个受害组织,利用两个已攻陷的账户额外公开了 500 个私有仓库。
s1ngularity 攻击概述
Nx 团队的应对措施
Nx 团队在 GitHub 上发布了详细的根本原因分析,指出此次漏洞源于 " 拉取请求(PR)标题注入 " 与 " 不安全使用 pull_request_target" 的结合。这种组合使攻击者能够以提升的权限执行任意代码,进而触发 Nx 的发布流水线,并窃取 npm 发布令牌。
目前,Nx 团队已采取以下补救措施:移除恶意包、撤销并轮换遭泄露的令牌、为所有发布者账户启用双因素认证。
为防止类似漏洞再次发生,Nx 项目现已采用 NPM 的 " 可信发布者(Trusted Publisher)" 模式(该模式无需基于令牌的发布流程),并为 PR 触发的工作流新增了手动审批环节。
登录后才可以发布评论哦
打开小程序可以发布评论哦