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 注册表完成的。
官方同时声明,受影响成员账户均启用了双重身份验证,但攻击者利用 Git 环境下孤儿提交方式绕过了现有的发布保护机制。所有恶意版本已被弃用,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 |
| mistralai | 2.4.6 |
| pypi |
| mistralai | 2.4.6 |
| npm | @opensearch-project | opensearch | 3.5.3 |
| npm | @opensearch-project | opensearch | 3.8.0 |
| npm | @opensearch-project | opensearch | 3.7.0 |
| pypi |
| guardrails-ai | 0.10.1 |
| pypi |
| guardrails-ai | 0.10.1 |
| npm | @opensearch-project | opensearch | 3.6.2 |
| npm |
| cross-stitch | 1.1.7 |
| npm | @squawk | fix-data | 0.6.8 |
| npm | @squawk | weather | 0.5.10 |
| npm | @squawk | icao-registry-data | 0.8.8 |
| npm | @squawk | airport-data | 0.7.8 |
| npm | @squawk | flightplan | 0.5.6 |
| npm | @squawk | units | 0.4.7 |
| npm | @squawk | flight-math | 0.5.8 |
| npm | @squawk | mcp | 0.9.5 |
| npm | @squawk | fixes | 0.3.6 |
| npm | @squawk | airspace-data | 0.5.7 |
| npm | @squawk | procedure-data | 0.7.7 |
| npm | @squawk | navaids | 0.4.6 |
| npm | @squawk | procedures | 0.5.6 |
| npm | @squawk | notams | 0.3.10 |
| npm | @squawk | airways | 0.4.6 |
| npm | @squawk | airports | 0.6.6 |
| npm |
| ts-dna | 3.0.5 |
| npm | @squawk | types | 0.8.5 |
| npm | @squawk | icao-registry | 0.5.6 |
| npm | @squawk | airspace | 0.8.5 |
| npm | @squawk | geo | 0.4.8 |
| npm | @squawk | navaid-data | 0.6.8 |
| npm | @squawk | airway-data | 0.5.8 |
| npm | @mistralai | mistralai | 2.2.4 |
| npm | @squawk | mcp | 0.9.4 |
| npm | @squawk | types | 0.8.3 |
| npm | @beproduct | nestjs-auth | 0.1.18 |
| npm | @squawk | airspace-data | 0.5.5 |
| npm |
| ts-dna | 3.0.4 |
| npm |
| git-git-git | 1.0.12 |
| npm | @squawk | airway-data | 0.5.7 |
| npm | @squawk | airports | 0.6.5 |
| npm |
| git-branch-selector | 1.3.7 |
| npm | @tallyui | pos | 0.1.3 |
| npm | @tallyui | connector-vendure | 1.0.3 |
| npm |
| cross-stitch | 1.1.5 |
| npm | @supersurkhet | cli | 0.0.7 |
| npm | @squawk | mcp | 0.9.3 |
| npm | @squawk | flightplan | 0.5.5 |
| npm | @squawk | fix-data | 0.6.7 |
| npm | @squawk | airspace-data | 0.5.6 |
| npm |
| git-branch-selector | 1.3.6 |
| npm | @taskflow-corp | cli | 0.1.29 |
| npm | @squawk | icao-registry-data | 0.8.6 |
| npm | @squawk | geo | 0.4.7 |
| npm | @squawk | airport-data | 0.7.7 |
| npm | @squawk | weather | 0.5.8 |
| npm | @squawk | geo | 0.4.6 |
| npm | @squawk | flight-math | 0.5.7 |
| npm | @squawk | icao-registry | 0.5.5 |
| npm | @beproduct | nestjs-auth | 0.1.19 |
| npm |
| nextmove-mcp | 0.1.7 |
| npm | @squawk | airways | 0.4.4 |
| npm | @tolka | cli | 1.0.5 |
| npm | @squawk | airways | 0.4.5 |
| npm | @squawk | fixes | 0.3.5 |
| npm |
| cmux-agent-mcp | 0.1.8 |
| npm | @tallyui | connector-shopify | 1.0.3 |
| npm | @squawk | flight-math | 0.5.6 |
| npm | @squawk | icao-registry | 0.5.4 |
| npm | @tallyui | components | 1.0.3 |
| npm | @squawk | navaids | 0.4.5 |
| npm |
| cross-stitch | 1.1.6 |
| npm | @squawk | notams | 0.3.9 |
| npm | @squawk | notams | 0.3.8 |
| npm | @tallyui | theme | 0.2.3 |
| npm | @squawk | navaids | 0.4.4 |
| npm |
| wot-api | 0.8.3 |
| npm | @squawk | icao-registry-data | 0.8.7 |
| npm | @tolka | cli | 1.0.6 |
| npm | @supersurkhet | sdk | 0.0.7 |
| npm | @squawk | airspace | 0.8.3 |
| npm | @squawk | procedure-data | 0.7.5 |
| npm | @squawk | types | 0.8.4 |
| npm | @squawk | units | 0.4.5 |
| npm | @squawk | airspace | 0.8.4 |
| npm | @squawk | procedures | 0.5.4 |
| npm | @squawk | flightplan | 0.5.4 |
| npm | @squawk | fixes | 0.3.4 |
| npm | @squawk | procedures | 0.5.5 |
| npm | @tallyui | storage-sqlite | 0.2.3 |
| npm | @tallyui | connector-woocommerce | 1.0.3 |
| npm | @squawk | units | 0.4.6 |
| npm | @tallyui | database | 1.0.3 |
| npm | @squawk | navaid-data | 0.6.7 |
| npm | @squawk | airport-data | 0.7.6 |
| npm | @squawk | procedure-data | 0.7.6 |
| npm | @squawk | airports | 0.6.4 |
| npm | @tallyui | connector-medusa | 1.0.3 |
| npm | @squawk | airway-data | 0.5.6 |
| npm |
| git-git-git | 1.0.11 |
| npm |
| nextmove-mcp | 0.1.6 |
| npm |
| wot-api | 0.8.4 |
| npm | @squawk | weather | 0.5.9 |
| npm |
| ts-dna | 3.0.3 |
| npm | @squawk | navaid-data | 0.6.6 |
| npm | @squawk | fix-data | 0.6.6 |
| npm | @tallyui | core | 0.2.3 |
| npm | @mistralai | mistralai | 2.2.3 |
| npm | @mistralai | mistralai | 2.2.2 |
| npm | @mistralai | mistralai-azure | 1.7.3 |
| npm | @mistralai | mistralai-gcp | 1.7.3 |
| npm |
| git-git-git | 1.0.10 |
| npm |
| nextmove-mcp | 0.1.5 |
| npm | @supersurkhet | sdk | 0.0.6 |
| npm | @taskflow-corp | cli | 0.1.28 |
| npm |
| cmux-agent-mcp | 0.1.7 |
| npm | @squawk | mcp | 0.9.2 |
| npm |
| cross-stitch | 1.1.4 |
| npm | @supersurkhet | cli | 0.0.6 |
| npm | @squawk | airspace-data | 0.5.4 |
| npm | @tallyui | theme | 0.2.2 |
| npm | @squawk | types | 0.8.2 |
| npm | @squawk | geo | 0.4.5 |
| npm | @tallyui | connector-medusa | 1.0.2 |
| npm | @squawk | airspace | 0.8.2 |
| npm | @tallyui | connector-woocommerce | 1.0.2 |
| npm | @squawk | airway-data | 0.5.5 |
| npm | @tallyui | pos | 0.1.2 |
| npm | @tallyui | components | 1.0.2 |
| npm | @squawk | flight-math | 0.5.5 |
| npm | @squawk | fix-data | 0.6.5 |
| npm | @squawk | fixes | 0.3.3 |
| npm | @tallyui | connector-vendure | 1.0.2 |
| npm | @squawk | procedures | 0.5.3 |
| npm | @squawk | weather | 0.5.7 |
| npm | @squawk | icao-registry | 0.5.3 |
| npm | @tallyui | database | 1.0.2 |
| npm | @squawk | airways | 0.4.3 |
| npm | @squawk | airport-data | 0.7.5 |
| npm | @squawk | flightplan | 0.5.3 |
| npm | @tallyui | connector-shopify | 1.0.2 |
| npm | @tallyui | storage-sqlite | 0.2.2 |
| npm |
| ts-dna | 3.0.2 |
| npm |
| wot-api | 0.8.2 |
| npm | @squawk | units | 0.4.4 |
| npm | @squawk | procedure-data | 0.7.4 |
| npm | @squawk | navaid-data | 0.6.5 |
| npm | @squawk | notams | 0.3.7 |
| npm | @squawk | icao-registry-data | 0.8.5 |
| npm | @squawk | airports | 0.6.3 |
| npm | @squawk | navaids | 0.4.3 |
| npm | @beproduct | nestjs-auth | 0.1.17 |
| npm |
| git-branch-selector | 1.3.5 |
| npm | @tolka | cli | 1.0.4 |
| npm | @mistralai | mistralai-gcp | 1.7.1 |
| npm | @mistralai | mistralai-gcp | 1.7.2 |
| npm | @mistralai | mistralai-azure | 1.7.1 |
| npm | @mistralai | mistralai-azure | 1.7.2 |
| npm | @tallyui | core | 0.2.2 |
| npm | @mesadev | saguaro | 0.4.22 |
| npm | @mesadev | sdk | 0.28.3 |
| npm | @mesadev | rest | 0.28.3 |
| npm |
| cross-stitch | 1.1.3 |
| npm |
| ts-dna | 3.0.1 |
| npm | @squawk | mcp | 0.9.1 |
| npm |
| wot-api | 0.8.1 |
| npm | @squawk | notams | 0.3.6 |
| npm | @squawk | airways | 0.4.2 |
| npm | @squawk | flightplan | 0.5.2 |
| npm | @squawk | weather | 0.5.6 |
| npm | @squawk | flight-math | 0.5.4 |
| npm | @squawk | airway-data | 0.5.4 |
| npm | @squawk | procedures | 0.5.2 |
| npm | @squawk | icao-registry-data | 0.8.4 |
| npm | @squawk | units | 0.4.3 |
| npm | @squawk | navaids | 0.4.2 |
| npm | @squawk | types | 0.8.1 |
| npm | @squawk | fix-data | 0.6.4 |
| npm | @squawk | navaid-data | 0.6.4 |
| npm | @squawk | icao-registry | 0.5.2 |
| npm | @squawk | fixes | 0.3.2 |
| npm | @squawk | geo | 0.4.4 |
| npm | @squawk | procedure-data | 0.7.3 |
| npm | @squawk | airspace-data | 0.5.3 |
| npm | @squawk | airports | 0.6.2 |
| npm | @squawk | airspace | 0.8.1 |
| npm | @squawk | airport-data | 0.7.4 |
| npm | @tolka | cli | 1.0.3 |
| npm |
| git-branch-selector | 1.3.4 |
| npm |
| nextmove-mcp | 0.1.4 |
| npm |
| git-git-git | 1.0.9 |
| npm | @tallyui | theme | 0.2.1 |
| npm | @tallyui | pos | 0.1.1 |
| npm | @tallyui | connector-medusa | 1.0.1 |
| npm | @tallyui | components | 1.0.1 |
| npm | @tallyui | connector-shopify | 1.0.1 |
| npm | @tallyui | core | 0.2.1 |
| npm | @tallyui | database | 1.0.1 |
| npm | @tallyui | connector-vendure | 1.0.1 |
| npm | @tallyui | storage-sqlite | 0.2.1 |
| npm | @tallyui | connector-woocommerce | 1.0.1 |
| npm | @uipath | apollo-react | 4.24.5 |
| npm | @uipath | agent.sdk | 0.0.18 |
| npm | @uipath | apollo-core | 5.9.2 |
| npm | @uipath | apollo-wind | 2.16.2 |
| npm | @uipath | tool-workflowcompiler | 0.0.12 |
| npm | @uipath | filesystem | 1.0.1 |
| npm | @uipath | robot | 1.3.4 |
| npm | @uipath | telemetry | 0.0.7 |
| npm | @uipath | integrationservice-sdk | 1.0.2 |
| npm | @uipath | ap-chat | 1.5.7 |
| npm | @uipath | widget.sdk | 1.2.3 |
| npm | @uipath | agent-sdk | 1.0.2 |
| npm | @uipath | packager-tool-apiworkflow | 0.0.19 |
| npm | @uipath | case-tool | 1.0.1 |
| npm | @uipath | codedagents-tool | 0.1.12 |
| npm | @uipath | api-workflow-tool | 1.0.1 |
| npm | @uipath | context-grounding-tool | 0.1.1 |
| npm | @uipath | packager-tool-workflowcompiler-browser | 0.0.34 |
| npm | @uipath | packager-tool-workflowcompiler | 0.0.16 |
| npm | @uipath | aops-policy-tool | 0.3.1 |
| npm | @uipath | flow-tool | 1.0.2 |
| npm | @uipath | resourcecatalog-tool | 0.1.1 |
| npm | @uipath | vertical-solutions-tool | 1.0.1 |
| npm | @uipath | data-fabric-tool | 1.0.2 |
| npm | @uipath | packager-tool-case | 0.0.9 |
| npm | @uipath | codedagent-tool | 1.0.1 |
| npm | @uipath | ui-widgets-multi-file-upload | 1.0.1 |
| npm | @uipath | docsai-tool | 1.0.1 |
| npm | @uipath | insights-tool | 1.0.1 |
| npm | @uipath | solutionpackager-sdk | 1.0.11 |
| npm | @uipath | auth | 1.0.1 |
| npm | @uipath | maestro-tool | 1.0.1 |
| npm | @uipath | cli | 1.0.1 |
| npm | @uipath | llmgw-tool | 1.0.1 |
| npm | @uipath | resource-tool | 1.0.1 |
| npm | @uipath | packager-tool-flow | 0.0.19 |
| npm | @uipath | common | 1.0.1 |
| npm | @uipath | gov-tool | 0.3.1 |
| npm | @uipath | traces-tool | 1.0.1 |
| npm | @uipath | packager-tool-bpmn | 0.0.9 |
| npm | @uipath | insights-sdk | 1.0.1 |
| npm | @uipath | admin-tool | 0.1.1 |
| npm | @uipath | packager-tool-webapp | 1.0.6 |
| npm | @uipath | solutionpackager-tool-core | 0.0.34 |
| npm | @uipath | vss | 0.1.6 |
| npm | @uipath | orchestrator-tool | 1.0.1 |
| npm | @uipath | solution-packager | 0.0.35 |
| npm | @uipath | uipath-python-bridge | 1.0.1 |
| npm | @uipath | codedapp-tool | 1.0.1 |
| npm | @uipath | project-packager | 1.1.16 |
| npm | @uipath | integrationservice-tool | 1.0.2 |
| npm | @uipath | packager-tool-functions | 0.1.1 |
| npm | @uipath | tasks-tool | 1.0.1 |
| npm | @uipath | solution-tool | 1.0.1 |
| npm | @uipath | packager-tool-connector | 0.0.19 |
| npm | @uipath | maestro-sdk | 1.0.1 |
| npm | @uipath | test-manager-tool | 1.0.2 |
| npm | @uipath | agent-tool | 1.0.1 |
| npm | @uipath | functions-tool | 1.0.1 |
| npm | @uipath | identity-tool | 0.1.1 |
| npm | @uipath | access-policy-tool | 0.3.1 |
| npm | @uipath | resources-tool | 0.1.11 |
| npm | @uipath | rpa-tool | 0.9.5 |
| npm | @uipath | rpa-legacy-tool | 1.0.1 |
| npm | @uipath | access-policy-sdk | 0.3.1 |
| npm | @uipath | platform-tool | 1.0.1 |
| npm | @beproduct | nestjs-auth | 0.1.16 |
| npm | @beproduct | nestjs-auth | 0.1.15 |
| npm | @dirigible-ai | sdk | 0.6.3 |
| npm | @dirigible-ai | sdk | 0.6.2 |
| npm | @beproduct | nestjs-auth | 0.1.13 |
| npm | @beproduct | nestjs-auth | 0.1.14 |
| npm | @beproduct | nestjs-auth | 0.1.8 |
| npm | @beproduct | nestjs-auth | 0.1.6 |
| npm | @beproduct | nestjs-auth | 0.1.9 |
| npm | @beproduct | nestjs-auth | 0.1.2 |
| npm | @beproduct | nestjs-auth | 0.1.5 |
| npm | @beproduct | nestjs-auth | 0.1.11 |
| npm | @beproduct | nestjs-auth | 0.1.4 |
| npm | @beproduct | nestjs-auth | 0.1.3 |
| npm | @beproduct | nestjs-auth | 0.1.7 |
| npm | @beproduct | nestjs-auth | 0.1.10 |
| npm | @beproduct | nestjs-auth | 0.1.12 |
| npm | @ml-toolkit-ts | preprocessing | 1.0.2 |
| npm | @ml-toolkit-ts | preprocessing | 1.0.3 |
| npm | @ml-toolkit-ts | xgboost | 1.0.3 |
| npm |
| ml-toolkit-ts | 1.0.5 |
| npm | @ml-toolkit-ts | xgboost | 1.0.4 |
| npm |
| ml-toolkit-ts | 1.0.4 |
| npm |
| agentwork-cli | 0.1.4 |
| npm |
| agentwork-cli | 0.1.5 |
| npm | @taskflow-corp | cli | 0.1.27 |
| npm |
| cmux-agent-mcp | 0.1.6 |
| npm | @supersurkhet | cli | 0.0.5 |
| npm | @supersurkhet | sdk | 0.0.5 |
| npm | @taskflow-corp | cli | 0.1.26 |
| npm | @supersurkhet | cli | 0.0.4 |
| npm |
| cmux-agent-mcp | 0.1.5 |
| npm | @supersurkhet | sdk | 0.0.4 |
| npm | @draftlab | auth | 0.24.2 |
| npm | @draftlab | auth | 0.24.1 |
| npm | @draftauth | core | 0.13.1 |
| npm | @draftauth | core | 0.13.2 |
| npm | @draftauth | client | 0.2.2 |
| npm | @draftauth | client | 0.2.1 |
| npm | @draftlab | db | 0.16.2 |
| npm |
| safe-action | 0.8.4 |
| npm | @draftlab | auth-router | 0.5.1 |
| npm | @draftlab | auth-router | 0.5.2 |
| npm | @draftlab | db | 0.16.1 |
| npm |
| safe-action | 0.8.3 |
| npm | @taskflow-corp | cli | 0.1.25 |
| npm |
| cmux-agent-mcp | 0.1.4 |
| npm | @supersurkhet | cli | 0.0.3 |
| npm | @supersurkhet | sdk | 0.0.3 |
| npm | @taskflow-corp | cli | 0.1.24 |
| npm | @supersurkhet | cli | 0.0.2 |
| npm |
| cmux-agent-mcp | 0.1.3 |
| npm | @supersurkhet | sdk | 0.0.2 |
| npm |
| git-git-git | 1.0.8 |
| npm | @tolka | cli | 1.0.2 |
| npm |
| git-branch-selector | 1.3.3 |
| npm |
| nextmove-mcp | 0.1.3 |
| npm | @tanstack | react-router | 1.169.8 |
| npm | @tanstack | solid-router | 1.169.8 |
| npm | @tanstack | router-core | 1.169.8 |
| npm | @tanstack | start-plugin-core | 1.169.26 |
| npm | @tanstack | vue-router | 1.169.8 |
| npm | @tanstack | router-plugin | 1.167.41 |
| npm | @tanstack | vue-start-client | 1.166.49 |
| npm | @tanstack | react-start-rsc | 0.0.50 |
| npm | @tanstack | start-client-core | 1.168.8 |
| npm | @tanstack | eslint-plugin-start | 0.0.7 |
| npm | @tanstack | react-start | 1.167.71 |
| npm | @tanstack | router-generator | 1.166.48 |
| npm | @tanstack | eslint-plugin-router | 1.161.12 |
| npm | @tanstack | router-devtools-core | 1.167.9 |
| npm | @tanstack | vue-start | 1.167.64 |
| npm | @tanstack | start-server-core | 1.167.36 |
| npm | @tanstack | solid-start-server | 1.166.57 |
| npm | @tanstack | start-storage-context | 1.166.41 |
| npm | @tanstack | solid-start-client | 1.166.53 |
| npm | @tanstack | solid-start | 1.167.68 |
| npm | @tanstack | router-ssr-query-core | 1.168.6 |
| npm | @tanstack | virtual-file-routes | 1.161.13 |
| npm | @tanstack | react-router-ssr-query | 1.166.18 |
| npm | @tanstack | nitro-v2-vite-plugin | 1.154.15 |
| npm | @tanstack | vue-start-server | 1.166.53 |
| npm | @tanstack | solid-router-ssr-query | 1.166.18 |
| npm | @tanstack | react-start-server | 1.166.58 |
| npm | @tanstack | react-start-client | 1.166.54 |
| npm | @tanstack | start-fn-stubs | 1.161.12 |
| npm | @tanstack | router-utils | 1.161.14 |
| npm | @tanstack | react-router-devtools | 1.166.19 |
| npm | @tanstack | solid-router-devtools | 1.166.19 |
| npm | @tanstack | history | 1.161.12 |
| npm | @tanstack | router-cli | 1.166.49 |
| npm | @tanstack | arktype-adapter | 1.166.15 |
| npm | @tanstack | vue-router-devtools | 1.166.19 |
| npm | @tanstack | zod-adapter | 1.166.15 |
| npm | @tanstack | vue-router-ssr-query | 1.166.18 |
| npm | @tanstack | start-static-server-functions | 1.166.47 |
| npm | @tanstack | router-vite-plugin | 1.166.56 |
| npm | @tanstack | valibot-adapter | 1.166.15 |
| npm | @tanstack | router-devtools | 1.166.19 |
| npm | @tanstack | solid-router | 1.169.5 |
| npm | @tanstack | start-plugin-core | 1.169.23 |
| npm | @tanstack | router-core | 1.169.5 |
| npm | @tanstack | vue-router | 1.169.5 |
| npm | @tanstack | react-router | 1.169.5 |
| npm | @tanstack | router-plugin | 1.167.38 |
| npm | @tanstack | eslint-plugin-start | 0.0.4 |
| npm | @tanstack | eslint-plugin-router | 1.161.9 |
| npm | @tanstack | react-start-rsc | 0.0.47 |
| npm | @tanstack | react-start | 1.167.68 |
| npm | @tanstack | router-generator | 1.166.45 |
| npm | @tanstack | start-client-core | 1.168.5 |
| npm | @tanstack | router-devtools-core | 1.167.6 |
| npm | @tanstack | router-utils | 1.161.11 |
| npm | @tanstack | vue-router-ssr-query | 1.166.15 |
| npm | @tanstack | arktype-adapter | 1.166.12 |
| npm | @tanstack | start-server-core | 1.167.33 |
| npm | @tanstack | solid-start | 1.167.65 |
| npm | @tanstack | react-router-devtools | 1.166.16 |
| npm | @tanstack | solid-router-devtools | 1.166.16 |
| npm | @tanstack | router-cli | 1.166.46 |
| npm | @tanstack | solid-start-server | 1.166.54 |
| npm | @tanstack | vue-router-devtools | 1.166.16 |
| npm | @tanstack | virtual-file-routes | 1.161.10 |
| npm | @tanstack | router-ssr-query-core | 1.168.3 |
| npm | @tanstack | router-vite-plugin | 1.166.53 |
| npm | @tanstack | nitro-v2-vite-plugin | 1.154.12 |
| npm | @tanstack | start-fn-stubs | 1.161.9 |
| npm | @tanstack | history | 1.161.9 |
| npm | @tanstack | react-router-ssr-query | 1.166.15 |
| npm | @tanstack | zod-adapter | 1.166.12 |
| npm | @tanstack | valibot-adapter | 1.166.12 |
| npm | @tanstack | solid-router-ssr-query | 1.166.15 |
| npm | @tanstack | react-start-client | 1.166.51 |
| npm | @tanstack | router-devtools | 1.166.16 |
| npm | @tanstack | react-start-server | 1.166.55 |
| npm | @tanstack | solid-start-client | 1.166.50 |
| npm | @tanstack | vue-start | 1.167.61 |
| npm | @tanstack | start-storage-context | 1.166.38 |
| npm | @tanstack | start-static-server-functions | 1.166.44 |
| npm | @tanstack | vue-start-client | 1.166.46 |
| npm | @tanstack | vue-start-server | 1.166.50 |
| composer | intercom | intercom-php | 5.0.2 |
| npm |
| intercom-client | 7.0.4 |
| pypi |
| lightning | 2.6.3 |
| pypi |
| lightning | 2.6.2 |
| npm | @cap-js | db-service | 2.10.1 |
| npm | @cap-js | postgres | 2.2.2 |
| npm | @cap-js | sqlite | 2.2.2 |
| npm |
| mbt | 1.2.48 |
对于开发者和运维团队,官方与安全机构给出了多项立即执行的应急措施:
对受影响的安装主机,应立即按优先级轮换 NPM 令牌、GitHub 个人访问令牌、云服务密钥(注:AWS / GCP / Azure)、Kubernetes 服务账户令牌以及 SSH 私钥;
审查开发者和项目根目录下的.claude/ 与.vscode/ 文件夹,移除 router_runtime.js 等陌生条目;
使用 git log --all --author=claude@users.noreply.github.com 审核仓库是否存在未授权的提交;
限制 GitHub Actions 中 OIDC 令牌的作用域,对所有不需要 OIDC 发布的工作流设置 permissions: id-token:none;
此外,开发者不应单纯信任 Sigstore 来源证明作为安全信号,因为攻击者在具备 GitHub Actions 执行能力后,同样能够生成有效的 Sigstore 证明用于恶意包。
安全团队通过 SHA-256 校验命令 shasum -a 256 在所有依赖树中搜索标识为 ab4fcada…… 的 router_init.js 文件,亦可用于确认是否引入恶意版本。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至23467321@qq.com举报,一经查实,本站将立刻删除;如已特别标注为本站原创文章的,转载时请以链接形式注明文章出处,谢谢!
还木有评论哦,快来抢沙发吧~