コンテンツへスキップ
Guide

Mini Shai-Hulud npm ワーム: 爆発範囲を検出、回転、縮小します

| 8 min read

TanStack、Mistral AI、および UiPath npm パッケージは、2026 年 5 月 11 日に攻撃を受けました。60 秒の検出スクリプト、ローテーションファースト チェックリスト、および最も有害な 4 つのパッケージ タイプを置き換える単一目的 API。

Code on a terminal representing an npm supply chain incident response
Photo by Caspar Camille Rubin on Unsplash

2026 年 5 月 11 日、協定世界時 19 時 20 分から 19 時 26 分の間に、TeamPCP 脅威アクターは 400 を超える悪意のある攻撃者をプッシュしました。 170 以上の npm および PyPI パッケージのバージョンを単一の調整されたバーストで。 TanStack ルーター、TanStack クエリ アダプター、Mistral AI SDK、UiPath、Guardrails AI はすべて爆発範囲内にありました。 6 出版の分数。 数週間にわたる大掃除。

この波は、Mini Shai-Hulud ワームです。インストール後に自己拡散し、データを盗むペイロードです。 メンテナー トークンを取得し、それらのトークンを使用してパッケージ全体にさらに毒されたバージョンを公開します。 被害者がコントロールする。 OpenAIはmacOSユーザーにアップデートするよう呼びかけた。 世界中の CI パイプラインが実行していました 誰かがアドバイザリを読む前にペイロードを確認します。

走ったら npm install 2026 年 5 月 11 日 19:20 UTC 以降の CI ランナーまたは開発者のラップトップ上で、 次のウェーブに向けて、60 秒間のチェック、ローテーション パス、構造変更を自分自身に課す義務があります。 費用が安くなります。 こちらがプレイブックです。

ステップ 1: 60 秒以内に検出する

このワームは、ロックファイル内のパッケージ バージョンの侵害、Git コミットという 3 つの大きな信号を残します。 またはという名前のリポジトリ Shai-Hulud-Migration、予期しない GitHub アクションが実行される ~に秘密を持ち出す webhook.site または TruffleHog バイナリ。 任意のホストからこれを実行します と gh そして npm インストールされています:

これら 4 つのコマンドのいずれかがヒットすると、すぐにステップ 2 にスキップします。 ありません 「まず調べてみる」という道。 ワームは勧告が終了する前に終了します。

Mini Shai-Hulud ペイロードは、 postinstall の権限を持つフック 誰が走ったとしても npm install。 OIDC を使用した CI ランナーでは、フェデレーション ID です クラウドアクセス付き。 開発者のラップトップでは、それがすべての秘密です ~/.aws~/.ssh~/.npmrc、およびシェルの履歴。

ステップ 2: 最初に回転し、次に調査します

法医学は来週です。 回転は次の 1 分間です。 すべてのシークレットの Runbook タブを開く 影響を受けるマシンが接触したことを表面化し、並行して取り消します。 このスクリプトはサーフェスを列挙します だから何も見逃されません:

ワームの下流の動きを捉えるローテーション順序は次のとおりです: npm トークン (新しいものを停止します) 公開)、GitHub PAT(リポジトリの作成を停止)、クラウド IAM キー(データのエクスポートを停止)、 サードパーティの SaaS キー (Stripe、Slack、OpenAI、Anthropic)、そして最後にディスクにキャッシュされた SSH キー。 古い認証情報がソースで無効になった後にのみ、シークレット マネージャーを更新してください。

ブリーチ API を使用して CI メールが漏洩したかどうかを確認する

TeamPCP は、侵害されたメールから収集した管理者の電子メールを含む IOC ダンプを公開します ~/.npmrc ファイル。 リリースボットアカウントに対して侵害チェックを実行して確認します あなたの住所が 5 月 12 日のダンプに記載されているかどうか:

リリースメールが最新のソースに表示されている場合、対応する npm トークンはすでに 公共の。 それを取り消し、パブリッシュ ワークフローの OIDC 信頼関係をローテーションし、次の条件で再発行します。 新しいアイデンティティ。

ステップ 3: ログとチケットから漏洩したシークレットをスクラブする

ワーム ペイロードは環境変数をログにダンプし、ログは Datadog、Sentry、Slack、および あなたの発券システム。 5 月 11 日の 19:20 UTC 以降に書き込まれたすべてのログ行を疑わしいものとして扱います。 パイプ 冷蔵倉庫に保管される前に、PII と秘密検出器を通じて高リスクのフィールドを検出します。

同じエンドポイントは、AWS キー、npm トークン、GitHub PAT、Stripe キー、および JWT にフラグを立てます。 に配線します 失敗して閉じられたログミドルウェア: 検出呼び出しがタイムアウトになった場合は、回線を削除するのではなく、 毒された可能性のあるレコードを書き込みます。 資格情報を外部に送信するよりも、ログ エントリを失う方が良いでしょう。 クエリ可能なインデックス。

ステップ 4: CI ガードで次の波をブロックする

このワームは、ランナーに到達する 3 つの要素に依存しています。それは、侵害されたパッケージ バージョン、 実行されるインストール後のフック、および公開するためのアウトバウンド ネットワーク アクセス。 それらのいずれかをブロックし、 チェーンが切れる。 ロックファイルの更新により問題が発生した場合、この GitHub Actions チェックは PR に失敗します。 既知の不正なバージョン、ワーム IOC、または署名された来歴のないランタイム dep:

と組み合わせてください npm config set ignore-scripts true CI ランナーと明示的な 正当にビルド ステップが必要なパッケージの許可リスト (TypeScript、esbuild、Sharp)。 の 1 回限りのノイズは、ワームプルーフのデフォルトの価値があります。

ステップ 5: ワームが住み着く可能性のある表面を縮小する

2026 年 4 月と 5 月の波で最も有害なパッケージ タイプは AI SDK でした、検証 ヘルパー、HTTP クライアント、小さなユーティリティなどです。 それらはすべて削除の候補であり、 取り消し可能な HTTP 呼び出しに置き換えます。 爆発範囲を比較します。

カテゴリ 典型的な npm 被害者 HTTP の置き換え 失効
電子メールの検証 バリデーター、ディープメールバリデーター /v1/email/validate APIキーをローテーションする
違反チェック Hibp クライアント パッケージ /v1/breach/check APIキーをローテーションする
PII と秘密スキャン Secretlint、pii 検出器 /v1/pii/detect APIキーをローテーションする
電話の解析 libphonenumber-js /v1/phone APIキーをローテーションする

最初にポストインストールフックを備えたパッケージを選択します。 2 番目に AI SDK を選択します (Mistral、Guardrails、 および LiteLLM はすべて過去 2 か月以内に侵害されました)。 重いインプロセスライブラリを保持する 実際には必要です。 自分で発信できる 200 ミリ秒の呼び出しをラップするものは削除してください。

重要なポイント

  • 60秒以内に検出します。 侵害されたパッケージのバージョン、リポジトリ名 Shai-Hulud-Migration、および無許可の GitHub Actions の実行が 3 つの大音量です。 信号。 一撃は回転を意味します。
  • 調べる前に回転してください。 npm トークン、GitHub PAT、クラウド キー、SaaS キー、SSH キー。 ワームによる認証情報のダウンストリーム販売は、数日ではなく数分で始まります。
  • ログをスクラブします。 高リスクのフィールドをパイプで通過させる /v1/pii/detect そして タイムアウト時にフェールクローズされます。 欠落しているログ行は、漏洩した資格情報を上回ります。
  • 次の波をブロックします。 既知の不正なバージョン、ワーム IOC、 そして署名されていないランタイムdeps。 とペアリングする ignore-scripts デフォルトでは。
  • 表面を縮めます。 単一目的の npm パッケージを取り消し可能な HTTP に置き換える 呼び出します。 侵害された API キーは 1 回のリクエストで無効になります。 侵害されたパッケージがすでに実行されています。

ボトイの展示品 /v1/breach/check/v1/pii/detect/v1/email/validate、および 1 つの API の背後にある約 200 の他の単一目的エンドポイント 5 req/min のキーは無料です。 それらをインシデント ランブックに結び付けるか、 MCPサーバー に Claude Code を使用すると、AI アシスタントが検出スクリプトを実行します。 閲覧する インタラクティブドキュメント 始めます。

FAQ

Mini Shai-Hulud ワームとは何ですか?
Mini Shai-Hulud は、TeamPCP 脅威アクターによって実行される、自己拡散型の npm および PyPI サプライ チェーン攻撃です。 メンテナ トークンを侵害し、悪意のあるインストール後のコードを公開し、次に盗んだトークンを使用して、メンテナが所有するパッケージ全体にさらに毒されたバージョンを公開します。 2026 年 5 月 11 日の波は、TanStack、Mistral AI SDK、UiPath、および Guardrails AI を襲いました。 170 以上のパッケージの 400 以上の悪意のあるバージョンが、UTC の 19:20 から 19:26 までの約 6 分間に公開されました。
2026 年 5 月 11 日に影響を受けたパッケージはどれですか?
TanStack Router、TanStack Query (複数のフレームワーク アダプター)、Mistral AI SDK、UiPath npm パッケージ、Guardrails AI、およびこれらのメンテナーの下流にあるいくつかの小さなライブラリ。 Wiz、Snyk、StepSecurity はすべて、完全な IOC リストを含む勧告を 5 月 12 日に公開しました。 ロックファイルが 2026 年 5 月 11 日 19:20 UTC 以降に公開されたこれらのパッケージのバージョンをプルした場合は、CI ホストと開発者マシンを侵害されたものとして扱います。
自分の CI がヒットしたかどうかを確認するにはどうすればよいですか?
CI ランナーからプッシュされた「Shai-Hulud」という名前の git コミット、webhook.site へのアウトバウンド リクエストまたは CI ログ内の TruffleHog バイナリ ダウンロード、組織内の「Shai-Hulud-Migration」という名前の GitHub リポジトリの 3 つのシグナルを確認します。 このワームは GitHub Actions を介して秘密を漏洩するため、監査ログが最も早い検出面となります。 過去 7 日間に作成していない新しいワークフロー実行をフィルターします。
露光後に何を回転させればよいですか?
影響を受けたランナーやラップトップが触れたあらゆる秘密。 npm トークン、GitHub PAT、AWS キー、GCP サービス アカウント、Stripe ライブ キー、Slack ボット トークン、OpenAI および Anthropic API キー、内部データベース認証情報、マシンにキャッシュされた SSH キー。 最初に調査しないでください。 回転させてから調査します。 抽出は数秒で完了します。 ローテーションにより、盗まれた資格情報が販売される前にドアが閉まります。
単一目的の HTTP API はこのリスクをどのように軽減するのでしょうか?
単一目的 API への HTTPS 呼び出しは、推移的に信頼されたパッケージとそのインストール後のフックを取り消し可能なキーに置き換えます。 API プロバイダーが侵害された場合、1 つのキーをローテーションするとトラフィックが停止します。 ツリー内のパッケージが侵害された場合、npm install を実行するすべてのマシンでマルウェアがすでに実行されています。 トレードマークは、爆発半径が小さいためレイテンシが小さく、即時に取り消しができることです。

botoiで開発を始めよう

150以上のAPIエンドポイント。検索、テキスト処理、画像生成、開発者ユーティリティに対応。無料プラン、クレジットカード不要。