TanStack は 5 月 11 日 19:20 UTC からのおよそ 6 分間に、@tanstack/* 系 42 パッケージで合計 84 の改竄バージョンが npm レジストリに公開されたと公式ポストモーテムで明らかにしました。攻撃者は前日にフォークから submit した pull_request_target ワークフローを起点に GitHub Actions のキャッシュを汚染し、ランナーの Worker プロセスから OIDC トークンをメモリ抽出して正規パイプライン経由で改竄版を公開しました。検出は外部研究者 (stepsecurity の ashishkurmi 氏) により公開後約 20 分で行われ、全該当バージョンは deprecate + レジストリ tarball 撤去対応に入っています。
主なポイント
- 攻撃手口は 3 段構成。(1) fork 上の pull_request_target で workflow をトリガし、(2) fork ⇆ base 信頼境界をまたぐ Actions キャッシュを汚染、(3) Runner.Worker プロセスから OIDC JWT をメモリ抽出して publish 権限を奪取。
- 改竄ペイロードは Mini Shai-Hulud (TeamPCP) と呼ばれる自己拡散型ワームの新派生で、CI 環境の AWS / GCP / Kubernetes / HashiCorp Vault 資格情報、GitHub トークン、SSH 鍵、.npmrc、各種 AI 設定など 100 以上のパスを走査し、Session Protocol CDN と GitHub GraphQL API へ外送出する。
- @tanstack/react-router (週 1,200 万 DL 超) を含む 42 パッケージが影響範囲。改竄版は 有効な SLSA Build Level 3 出所証明 付きで公開されており、出所のみでの可否判定が破綻したことが攻撃の特異点。
- 緩和策として TanStack は npm publish 経路から OIDC トラスト発行を撤回し、fork に対する pull_request_target を停止、Actions キャッシュ分離と secret スキャン強化を実施。利用者には 5 月 10 日以降にインストールした該当パッケージのロックファイル巻き戻しを推奨。
- npm エコシステム全体では本ワームによる 160 超パッケージ汚染が観測されており、4 月以降の Shai-Hulud 系統と合わせ、PR フック型キャッシュ汚染が新たな主流ベクトルになりつつある。
出典: Postmortem: TanStack npm supply-chain compromise (TanStack Blog)