📰 来源:IT之家
IT之家 5 月 12 日消息,网络安全检测机构 Socket 于当地时间 5 月 11 日发出警报,在开源工具库 TanStack 旗下约 84 个 NPM 软件包的恶意版本中发现疑似凭证窃取恶意代码。 受影响软件包覆盖 42 个 @tanstack/* 命名空间下的项目,其中 @tanstack / react-router 的周下载量超 1200 万次,此类工具包在 NPM 生态中被广泛直接或间接引用,使得本次供应链攻击具有极广的传播范围。 分析发现,被篡改的软件包中新增了一个约 2.3MB、经过高强度 JavaScript 混淆的文件 router_init.js,同时 package.json 中增加了一个指向 GitHub 特定提交的 optionalDependencies 依赖项。 该提交来自一个名为 voicproducoes 的 GitHub 账户,是一个无历史记录的单根提交,包含伪造的包 @tanstack / setup 及其 prepare 生命周期钩子,后者在被安装时会执行任意恶意代码。当开发者或 CI 系统执行包安装操作时,该钩子自动运行,从多个常用位置窃取密钥、令牌和凭据,包括 AWS IMDS 与 Secrets Manager、GCP 元数据、Kubernetes 服务账户令牌、Vault 令牌、~/.npmrc、GitHub 令牌以及 SSH 私钥。窃取的数据通过 Session / Oxen 加密文件上传网络外泄,攻击者同时植入持久化监控组件,能够在受害者机器上维持长期访问。 TanStack 在事后技术复盘中将攻击链归因于三种 GitHub Actions 漏洞的组合利用:攻击者利用 pull_request_target“Pwn Request”模式、跨 fork 缓存投毒以及从 GitHub Actions 运行器进程的内存中实时提取 OIDC 令牌。 在此过程中,NPM 凭证并未泄露,合法发布工作流也未遭攻破,恶意发布是通过项目的 OIDC 受信任发布者绑定进行身份验证后直接推送到 NPM 注册表完成的。 官方同时声明,受影响成员账户均启用了双重身份验证,但攻击者利用孤儿提交绕过了现有的发布保护机制。所有恶意版本已被弃用,TanStack 已联系 NPM 安全团队从注册表中移除恶意压缩包,GitHub Actions 缓存条目也已清理。 本次攻击被安全机构归为正在蔓延的大规模“Mini Shai-Hulud”供应链攻击的一部分。此前该攻击曾针对 SAP 生态系统的 NPM 包,现已扩展为波及更广泛的 NPM 投毒活动。 据不完全统计,目前已受影响的软件包覆盖 @squawk、@tanstack、@uipath、@tallyui、@beproduct、@mistralai 等多个命名空间,共计超过 160 个包名、近 373 个恶意版本条目。 其中 @mistralai / mistralai(官方 TypeScript 客户端)和 @uipath / apollo-core 等企业级工具包亦被植入同类型窃取凭证的蠕虫,采用相同的下载 Bun 运行时并执行恶意载荷的传播机制。 软件包版本 pypi mistralai2.4.6 pypi mistralai2.4.6 npm@opensearch-projectopensearch3.5.3 npm@opensearch-projectopensearch3.8.0 npm@opensearch-projectopensearch3.7.0 pypi guardrails-ai0.10.1 pypi guardrails-ai0.10.1 npm@opensearch-projectopensearch3.6.2 npm cross-stitch1.1.7 npm@squawkfix-data0.6.8 npm@squawkweather0.5.10 npm@squawkicao-registry-data0.8.8 npm@squawkairport-data0.7.8 npm@squawkflightplan0.5.6 npm@squawkunits0.4.7 npm@squawkflight-math0.5.8 npm@squawkmcp0.9.5 npm@squawkfixes0.3.6 npm@squawkairspace-data0.5.7 npm@squawkprocedure-data0.7.7 npm@squawknavaids0.4.6 npm@squawkprocedures0.5.6 npm@squawknotams0.3.10 npm@squawkairways0.4.6 npm@squawkairport
本文转载自 IT之家,版权归原作者所有。