Semgrep 披露了 nx 构建工具的供应链攻击事件。该事件涉及恶意软件通过 nx 的后安装钩子窃取用户钱包、API 密钥和凭证,并上传至 GitHub 存储库。
nx 是一个广泛用于管理大型代码库的构建系统,每天有约 250 万开发者使用,尤其适用于单体仓库项目。它通过智能分析代码,仅重建和测试变更部分以提升效率。
此次攻击影响了多个 nx 相关包的特定版本,这些版本已被 npm 移除,但之前安装的用户可能仍面临风险。这是供应链安全威胁的典型案例,呼吁开发者立即检查和补救。
攻击于 2025 年 8 月 26 日下午开始,当时发布了 8 个恶意 nx 版本,包括 @nx/devkit(21.5.0、20.9.0)、@nx/enterprise-cloud(3.2.0)、@nx/eslint(21.5.0)、@nx/key(3.2.0)、@nx/node(21.5.0、20.9.0)、@nx/workspace(21.5.0、20.9.0)以及 @nx(21.5.0、20.9.0、20.10.0、21.6.0、20.11.0、21.7.0、21.8.0、20.12.0)。
这些版本利用 nx 的 postinstall 钩子执行恶意脚本 telemetry.js,导致至少 1400 名用户的 GitHub 账户中出现名为“s1ngularity-repository”的新存储库。
恶意软件会捕获进程环境变量(如 .npmrc 中的凭证)、API 密钥,并将它们 base64 编码后存储在“results.b64”文件中上传至该存储库。
此外,它还会检查系统中是否存在 Claude Code CLI 或 Gemini CLI 等 AI 工具,通过提示外包递归搜索文件系统,识别钱包相关路径(如 $HOME/.config),深度限制为 8 层,并跳过系统目录如 /proc 和 /sys。搜索结果以 JSON 格式编码后上传,旨在窃取敏感信息如 GitHub 令牌和 SSH 密钥。
补救步骤:
首先,监控 GitHub 组织,检查是否有“s1ngularity-repository”开头的存储库,并立即删除;
其次,更新 nx 至安全版本 21.4.1 或更高;
第三,轮换所有可能泄露的秘密,包括 GitHub 令牌、npm 凭证、SSH 密钥和环境变量;
第四,检查 shell 配置文件(如 .bashrc)移除任何可疑关闭指令;
最后,审查系统日志和 AI CLI 使用记录。
预防建议包括使用 Semgrep 等静态分析工具定期扫描依赖、使用多因素认证保护账户、避免运行未知 postinstall 脚本,并监控 npm 包的发布历史。
#AI #安全 #漏洞
Security Alert | NX Compromised to Steal Wallets and Credentials
Monodraw 是一款专为 macOS 设计的强大 ASCII 艺术编辑器,由 Helftone 团队开发。