以使用 Rust 编写的高性能 JavaScript 捆绑程序而闻名的 Rspack 生态系统已成为供应链攻击的最新受害者。这次漏洞影响了两个广泛使用的 npm 软件包 @rspack/core 和 @rspack/cli,它们被篡改为包含加密劫持恶意软件。
当攻击者获得未经授权的 npm 发布权限时,@rspack/core 和 @rspack/cli 的 1.1.7 版本遭到了破坏。“这些恶意版本包含旨在执行未经授权的加密货币挖掘的混淆脚本。”根据 Socket 研究小组的分析,恶意软件是通过安装后脚本执行的,该脚本会在安装软件包时自动运行。
Rspack 已在微软、亚马逊、Discord 和阿里巴巴等顶级公司中迅速流行起来,仅 @rspack/core 就拥有每周 37 万次的下载量。这次漏洞有可能影响到成千上万使用受损软件包的开发人员和企业。
攻击者在 @rspack/core 的 support.js 文件和 @rspack/cli 的 config.js 文件中注入了加密劫持脚本。主要恶意功能包括:
- 加密劫持: 脚本下载并执行 XMRig Cryptomining 程序,利用计算能力挖掘 Monero 加密货币。使用-cpu-max-threads-hint=75等参数来限制CPU使用量,避免被发现。
- 数据外渗: 恶意代码从 http://80.78.28.72/tokens 和 http://ipinfo.io/json 等外部服务器获取信息,收集 IP 地址和地理位置数据等用户环境详细信息。这种侦查可为定制攻击提供便利。
- 隐蔽战术: 采用混淆技术来逃避检测和分析。恶意软件通过软件包的安装后脚本将自身嵌入到开发环境中,使开发人员无法察觉其存在。
Rspack 团队通过以下措施迅速缓解了这一问题:
- 废弃 1.1.7 版本,将最新的 dist-tag 重定向到 1.1.6 版本。
- 使所有 npm 和 GitHub 标记失效,以防止更多未经授权的访问。
- 发布 1.1.8 版,删除恶意代码并恢复对受影响软件包的信任