
CVE-2026-45321 Mini Shai-Hulud サプライチェーン侵害を検出 — TanStack、Mistral AI、UiPath、OpenSearch、Guardrails AI にわたる170個のnpm + 2個のPyPI毒入りパッケージをスキャン
CVE-2026-45321「Mini Shai-Hulud」 サプライチェーン攻撃の影響を受けているかどうかを検出する、高速で依存関係ゼロのBashスキャナです。
2026年5月11日、TanStack、Mistral AI、UiPath、OpenSearch、Guardrails AIにわたる 170以上のnpmパッケージ と 2つのPyPIパッケージ が同時に改ざんされました。悪意のあるペイロードはAWS認証情報、GitHubトークン、npmトークン、Vaultシークレット、SSHキーを窃取し、CI/CDパイプラインを通じて拡散する自己増殖型ワームも含まれています。
curl -fsSL https://raw.githubusercontent.com/qi-scape/scan-shai-hulud/main/scan-shai-hulud.sh | bash
またはクローンして実行:
git clone https://github.com/qi-scape/scan-shai-hulud.git
cd scan-shai-hulud
chmod +x scan-shai-hulud.sh
./scan-shai-hulud.sh
# 現在のディレクトリ+システム全体の永続化チェックをスキャン
./scan-shai-hulud.sh
# 特定のプロジェクトをスキャン
./scan-shai-hulud.sh ~/my-project
# ホームディレクトリ全体をディープスキャン
./scan-shai-hulud.sh --full
このスキャナは8つのステップを実行します:
15のスコープにわたる 170個のnpmパッケージ:
react-router、vue-router、solid-router、router-core など)mistralai、mistralai-azure、mistralai-gcpopensearchagentwork-cli、cmux-agent-mcp、cross-stitch、、、、、、、2つのPyPIパッケージ:
mistralai==2.4.6guardrails-ai==0.10.1スキャナが CRITICAL(重大) な検出結果を報告した場合:
ghp_*、gho_*、ghs_*)、npmトークン、Vaultトークン、SSHキー、Kubernetesサービスアカウントトークンnpm cache clean --force && rm -rf node_modules && npm installlaunchctl unload ~/Library/LaunchAgents/com.user.gh-token-monitor.plist2026-05-11T19:20Z 以降のGitHub Actionsの実行を監査するnpm access ls-packagesfind、grep、shasum)mdfind(macOS Spotlight、高速ファイル検索に使用)npm、pip(パッケージ/トークンチェック用)git(リポジトリチェック用)lsof(ネットワーク接続チェック用)MIT
| ステップ | 説明 |
|---|
| 永続化 | macOS LaunchAgent(ファイル+launchctlロード状態)、Linux systemdサービス、デッドマンスイッチスクリプト、.claude/ および .vscode/ へのペイロード展開、注入されたGitHub Actionsワークフロー、/tmp ドロッパー |
| 悪意のあるファイル | router_init.js、tanstack_runner.js、router_runtime.js、gh-token-monitor.sh、transformers.pyz — 既知のSHA-256ハッシュ3件と照合 |
| C2指標 | 設定ファイル(.npmrc、.bashrc、.zshrc、.env)とプロジェクトソースを6つのC2ドメイン+キャンペーンマーカーについてスキャン |
| npmパッケージ | すべての node_modules ツリー、npmグローバルルート、ロックファイル(package-lock.json、yarn.lock、pnpm-lock.yaml、bun.lock)、npmキャッシュ — パッケージ単位の精密な照合(スコープ全体ではなく、特定の42個の@tanstackルーターパッケージ) |
| PyPIパッケージ | すべてのPython/conda環境で pip show + requirements.txt、pyproject.toml、Pipfile、poetry.lock |
| Gitリポジトリ | 履歴内の悪意のあるコミットハッシュ、dependabout/*/setup-formatter デッドドロップブランチ、デッドドロップコミット作成者、注入された codeql_analysis.yml |
| シェル履歴と環境 | Bash/Zsh/Fish履歴のペイロード実行痕跡、シェルRCファイルの注入、C2ドメインに関する環境変数 |
| ネットワークとトークン | lsof によるC2へのアクティブな接続、/etc/hosts、~/.ssh/known_hosts、npmトークンリスト |
git-branch-selectorgit-git-gitml-toolkit-tsnextmove-mcpsafe-actionts-dnawot-api| 指標 | 値 |
|---|
| 主要な外部送信先 | filev2.getsession.org |
| セッションシード | seed{1,2,3}.getsession.org |
| セカンダリC2 | api.masscan.cloud、git-tanstack.com |
| ペイロードステージング | litter.catbox.moe/h8nc9u.js、litter.catbox.moe/7rrc6l.mjs |
| 悪意のあるコミット | 79ac49eedf774dd4b0cfa308722bc463cfe5885c |