npm包jscrambler 8.14.0遭投毒:安装即植入Rust窃密木马,云密钥与AI工具凭证全面失守
2026年7月11日,npm包jscrambler 8.14.0被投毒,攻击者通过入侵维护者账户植入Rust信息窃取器。安装时自动释放跨平台二进制,窃取云凭证、加密货币钱包、AI工具API密钥及浏览器密码,并使用eBPF实现内核驻留。立即升级至8.15.0,轮换全部敏感凭据。
⛓️ Critical 供应链攻击
2026年7月11日,知名JavaScript混淆工具jscrambler的npm包8.14.0版本被攻陷。攻击者通过入侵维护者账号绕过正常发布流程,在包中植入preinstall钩子,安装时自动释放并执行Rust编写的信息窃取器,窃取云服务凭证、加密货币钱包、浏览器密码及AI编码工具API密钥等敏感数据,并具备eBPF内核驻留和跨平台持久化能力。
来源:The Hacker News | 2026-07-11 | 原文链接
🔍 关键发现
- 攻击者利用被入侵的npm账号或构建管道,直接向npm注册表推送恶意版本8.14.0,GitHub仓库无对应代码提交或标签。
- 恶意包在dist/目录下新增setup.js(加载器)和intro.js(7.8MB容器,内含三个平台的原生二进制),通过preinstall钩子自动运行。
- Rust信息窃取器针对开发者环境,窃取AWS/Azure/GCP凭证、MetaMask/Phantom/Exodus钱包、Bitwarden密码库、浏览器密码/cookie、Discord/Steam会话,以及Claude Desktop、Cursor等AI工具的API密钥和MCP凭证。
- Linux版本具备eBPF内核加载能力,Windows/macOS版本包含反调试检查和持久化机制(隐藏的Windows计划任务每分钟重启、macOS LaunchAgent登录时加载)。
- C2地址加密硬编码在二进制中,运行时已观察到连接两个IP地址和Tor基础设施。
- npm 12(2026年7月8日发布)默认禁用安装脚本,可阻止此攻击,但旧版客户端仍自动执行。
⚔️ 攻击链分析
攻击者入侵jscrambler维护者npm账号或CI管道→直接向npm发布恶意版本8.14.0→用户或构建系统安装该版本时,preinstall钩子执行setup.js→setup.js根据操作系统从intro.js中解压对应原生二进制,置于临时目录并执行→Rust信息窃取器收集敏感数据,通过TLS发送到攻击者C2服务器,同时通过eBPF(Linux)进行内核驻留或通过计划任务/LaunchAgent实现持久化。
🚩 失陷指标 (IOC)
jscrambler@8.14.0dist/setup.js SHA256: a742de963f14a92d24ebcbc7b44ac867e23a20d31d1b0094a13a4f83287f4e60dist/intro.js SHA256: a41a523ef9517aab37ed6eea0ec881821bdcb7aefcb5c5f603adc7907f868c86Linux payload SHA256: fbbcf4d8f98168f78f5c0c47a9ae56d59ec8ac84a7c9ca6b797fedfb8d62d2bdWindows payload SHA256: b7ca95d1b23c8e67416a25cedf741de0917c2096bbc9d24649eea7853d054903macOS payload SHA256: c8fd47d36bdf7c825378593ab82ed8c24d1dc52e26b507812393e24e1d5201fd
🛡️ 缓解建议
- ✅ 立即将jscrambler升级至8.15.0或降级至8.13.0,清除node_modules和lockfile中8.14.0的相关缓存。
- ✅ 检查所有可能安装了8.14.0的主机(包括开发机、CI/CD环境),根据安装时间戳配合临时目录执行记录进行取证。
- ✅ 若确认曾运行恶意版本,立即轮换所有可能被窃取的云服务密钥、npm/GitHub令牌、AI工具及MCP API密钥,撤销Discord/Slack/Bitwarden会话,转移所在主机上的加密货币钱包资产。
- ✅ 在Windows上检查任务计划中隐藏的任务,在macOS上检查~/Library/LaunchAgents中异常plist文件。
- ✅ 阻止已识别的C2 IP地址(具体IP需参考安全厂商完整报告)。
涉及漏洞:[]
⚠️ 本文仅供安全研究与学习,IOC 信息请勿用于非法目的。
🤖 常见问题解答(FAQ)
❓ 如何快速检测是否安装过恶意版本8.14.0?
检查lockfile(package-lock.json/yarn.lock)中jscrambler版本是否为8.14.0,或执行npm ls jscrambler 2>/dev/null | grep '8.14.0'。在CI日志中搜索dist/setup.js执行记录。
❓ 恶意程序会窃取哪些AI工具凭证?
针对Claude Desktop、Cursor、Windsurf、VS Code、Zed等AI编码工具的配置文件,获取API密钥和Model Context Protocol(MCP)服务器凭证。
❓ 旧版npm客户端用户是否完全无法防御?
未升级至npm 12的客户端仍会默认执行preinstall钩子。可临时设置.npmrc中ignore-scripts=true阻止所有安装脚本,或使用npm12以上版本。