
🛡️ CVE-2026-45321 のためのワンコマンドスキャナー — TanStack npm サプライチェーン攻撃
CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx のためのワンコマンドサプライチェーン攻撃スキャナー
2026年5月11日に42の @tanstack/* npmパッケージ(84の悪意のあるバージョン)を侵害した「Mini Shai-Hulud」ワームを検出します。
# One line — scan your project
curl -fsSL https://raw.githubusercontent.com/Caixa-git/tanstack-shield/main/tanstack-shield.sh | bash
# Scan specific directory
curl -fsSL https://raw.githubusercontent.com/Caixa-git/tanstack-shield/main/tanstack-shield.sh | bash -s -- /path/to/project
# Download and use directly
git clone https://github.com/Caixa-git/tanstack-shield.git
cd tanstack-shield
python3 tanstack-shield.py .
2026年5月11日、攻撃者は、pull_request_target(Pwn Request)の誤設定、GitHub Actionsのキャッシュポイズニング、およびOIDCトークンメモリ抽出という3つの既知の脆弱性クラスを連鎖させ、TanStackの信頼されたnpmアイデンティティの下で42の@tanstack/*パッケージにわたって84の悪意のあるバージョンを公開しました。
マルウェアは認証情報(GitHubトークン、npmトークン、SSHキー、AWS/GCP/Kubernetes/Vault)を収集し、Sessionメッセンジャー経由で外部に流出させ、被害者が管理する他のパッケージに自己増殖しました。
同じキャンペーンはMistral AI(npm + PyPI)、UiPath(65パッケージ)、OpenSearch(週間npmダウンロード130万)、および合計170以上のnpmパッケージと2つのPyPIパッケージも標的にしました。
プロジェクトをチェックする読み取り専用スキャナー:
注: ロックファイルはプロジェクトルートでのみスキャンされます。サブディレクトリにロックファイルがあるモノレポを使用している場合(例: packages/web/package-lock.json)、各ワークスペース内でスキャナーを実行するか、トップレベルのロックファイルがあるモノレポルートから実行してください。
@tanstack/* がpackage.jsonにあります。ロックファイルを確認してください。⚠️ 重要: このマルウェアは認証情報スティーラーであり、PCを破壊するウイルスではありません。 🔴が検出された場合:
curl -fsSL https://raw.githubusercontent.com/Caixa-git/tanstack-shield/main/tanstack-shield.sh | bash -s -- --json
このツールは読み取り専用です。システム上のファイルを作成、変更、削除することは決してありません。
MIT
| 対象 | ファイル | 結果 |
|---|
| npmロックファイル | package-lock.json, npm-shrinkwrap.json | 🔴 正確な悪意のあるバージョンに一致 |
| pnpmロックファイル | pnpm-lock.yaml | 🔴 正確な悪意のあるバージョンに一致 |
| yarnロックファイル | yarn.lock | 🔴 正確な悪意のあるバージョンに一致 |
| マニフェスト依存関係 | package.json(ルート+ワークスペース) | 🟡 パッケージ存在警告 |
| マルウェアフィンガープリント | @tanstack/setup in optionalDependencies | 🔴 マルウェア確認済み |
| 不審なgit依存関係 | github:tanstack/router#<commit> | 🔴 マルウェア確認済み |
| ライフサイクルスクリプト | prepare with bun + router_init | 🔴 マルウェア確認済み |
| node_modules | node_modules/@tanstack/*(代替) | 🔴 正確なバージョン一致 |