Skip to main content

NPMパッケージへの大規模なゼロデイ侵害 — Shai-Huludサプライチェーン攻撃

feature open source

2025年9月15日

0 分で読めます

これは現在も進行中のインシデントです。確認された情報が増え次第、更新します。

Snykの特集ゼロデイレポートで、この攻撃による影響の有無をご確認ください。

Shai-Hulud NPM Attack: Remediation with Snyk

要点(2025年9月17日)

2025年9月15日頃に始まり、「Shai-Hulud」と呼ばれるようになったこの攻撃は、数百の侵害されたnpmパッケージを通じて拡散するワーム型マルウェアであることが判明しています。この攻撃は、ディスク上のクラウド認証情報、APIキー、その他のシークレットを窃取して外部に流出させることを目的とし、Webhookや公開GitHubリポジトリを通じてデータを送信します。また、CI/CD環境も標的としており、GitHub Actionsを利用してデータを流出させ、攻撃を持続させます。

更新(2025年9月16日)

Snykのセキュリティリサーチチームは、このサプライチェーン攻撃が現在も進行中であることを把握しており、侵害されたnpmパッケージを通じて拡大する攻撃に伴う脅威とリスクの調査、分析、情報整理を積極的に進めています。最新情報については、Snyk製品の検出結果をご確認ください。

初回更新(2025年9月15日)

2025年9月15日、悪意のある複数のngx-bootstrapおよびng2-file-upload npmパッケージのバージョンが公開された後、すぐに取り下げられました。これらのリリースには、開発者のトークン(npm、GitHub、クラウドの認証情報など)を窃取し、シークレットを外部に流出させようとするpostinstallスクリプト(bundle.js)が埋め込まれていました。これらのバージョンをインストールしたシステムは、完全に侵害されたものとして扱ってください。パッケージを削除し、別の信頼できるマシンからすべてのシークレットをローテーションし、ラテラルムーブメントの有無を調査してください。GitHubはngx-bootstrapおよびng2-file-uploadに関するマルウェアアドバイザリを公開しています。改ざんされたビルドは削除されたため、修正版は存在しません。

当初のngx-bootstrapに関する調査結果に続き、週に200万回以上ダウンロードされている@ctrl/tinycolor npmパッケージにもマルウェアの兆候が広がっています。さらに、@ctrlおよび@nativescript-communityの名前空間に属するパッケージや、その他の個別パッケージにも侵害が及んでいます。

ngx-bootstrapとは?なぜ重要なのか

ngx-bootstrapは、Angularアプリ向けにBootstrapのUIコンポーネントを提供する、広く利用されているAngularコンポーネントライブラリです。フロントエンドプロジェクト、CIビルド、開発者のワークステーションで幅広く使われているため、悪意のあるインストールスクリプトが通常のnpm install中に実行され、開発者のマシンやローカルの認証情報にアクセスするおそれがあります。公式リポジトリはValor Softwareが管理しています。

現時点で判明していること

影響を受けるパッケージは数百に上る可能性

この攻撃はngx-bootstrapおよび@ctrl/tinycolor以外のパッケージにも侵害を広げています。サイバーセキュリティ企業CrowdStrikeのパッケージが含まれるnpm名前空間@crowdstrikeなど、他の組織の名前空間に属するパッケージにも及んでいます。

以下は網羅的な一覧ではなく、参考情報です。すべての悪意のあるパッケージとバージョンの最新かつ包括的な一覧については、Snyk製品、スキャン結果、レポートをご確認ください。

影響を受けたパッケージの詳細は、専用の脆弱性データベースの侵害パッケージページで確認できます。

影響を受けたngx-bootstrapのパッケージとバージョン

コミュニティの報告によると、以下のngx-bootstrapのバージョンには、bundle.jsを呼び出す悪意のあるpostinstallフックが含まれていました。

  • 20.0.4, 20.0.5, 20.0.6

  • 19.0.3

  • 18.1.4

また、20.0.3にもbundle.jsが含まれていたと報告されていますが、postinstallの宣言はありませんでした。同じ報告によると、影響を受けたバージョンは発見後まもなくnpmから削除されました。

注: 執筆時点でnpmパッケージのページに表示されているのは、現在の影響を受けていないバージョンのみです。悪意のあるバージョンは公開停止になっています。

コミュニティからはng2-file-uploadも「影響を受けているようだ」と報告されていますが、詳細は限られています。Valor Softwareのパッケージを含む依存関係ツリーに注意し、インストール済みのバージョンを確認してください。

タイムライン(UTC)

  • 2025-09-15 — コミュニティからvalor-software/ngx-bootstrapに関する報告があり、新しいバージョンに悪意のあるpostinstall/bundle.jsが含まれていることを指摘。トークン窃取の試みと、影響を受けたバージョンがnpmから取り下げられたことが報告されました。

  • 2025-09-15 — GitHub Advisory Databaseがngx-bootstrapの「マルウェア」に関するアドバイザリGHSA-6m4g-vm7c-f8w6を公開し、インストールしたホストを侵害されたものとして扱うよう案内しました。

(保守担当者やレジストリから検証可能な新情報が得られ次第、更新します。)

影響評価

  • 影響を受けるのは? 一覧に記載されたバージョンをインストールした開発者、CIエージェント、エンドポイント。または、該当バージョンが公開されていた期間に推移的依存関係を通じて取得した環境。

  • 何が漏えいした可能性がある? 開発環境のシークレットやトークン(npm、GitHub)、さらにbundle.jsに記載された動作から、クラウド認証情報(AWS/GCPなど)も漏えいした可能性があります。

  • また、新たに作成されたshai-huludというGitHub Actionsワークフローが、マルウェアによって作成された侵害の痕跡(IoC)として確認されています。

  • 深刻度: 重大(インストール時の悪意あるコード実行、認証情報の窃取・外部流出)。GitHubのアドバイザリは、全面的な侵害対応を明示的に指示しています。

Snykでゼロデイのnpmマルウェアを検出するには?

Snykアプリのダッシュボードでは、「Shai-Hulud npmサプライチェーン攻撃 - 2025年9月」というゼロデイレポートを利用できます。

Enterpriseプランをご利用の場合、この画面でレポートを絞り込み、このnpmマルウェア攻撃に関連するゼロデイや、追跡したい特定のCVEを選択できます。tinycolor、ngx-bootstrap、その他の依存関係が、アプリケーションや監視対象のコードリポジトリ全体に及ぼす影響を把握できます。

「ゼロデイ脆弱性」というタイトルのドロップダウンメニューが開き、脆弱性の一覧が表示されています。「Shai-Hulud npmサプライチェーン攻撃 – 2025年9月」の項目にチェックが入っています。

検出とトリアージの対応手順

  1. リスクへの曝露状況を迅速に特定する

    • 環境が影響を受けたバージョンを取得していないか確認します。

      • npm ls ngx-bootstrap(プロジェクトごと)

      • ロックファイル(package-lock.json、pnpm-lock.yaml、yarn.lock)でngx-bootstrap@18.1.4、19.0.3、20.0.4–20.0.6を確認し、2025-09-15以降に行われたインストールがないか調べます。

    • node_modules/ngx-bootstrap/package.jsonにpostinstallエントリがないか確認します。また、ベンダーアーカイブやキャッシュを管理している場合は、パッケージのルートにbundle.jsファイルがないか調べます。

  2. インシデント対応中はスクリプトの実行を停止する

    • 残っているライフサイクルフックの実行を防ぐため、スクリプトを無効にして再インストールします。

      • npm ci --ignore-scriptsまたはnpm install --ignore-scripts

      • .npmrcにignore-scripts=trueを設定する方法もあります。

  3. フォレンジック調査

    • インストール時にビルドエージェントや開発者ホストから発生した外向きの接続を確認します。

    • GitHub(アクセストークンの一覧、最近のセキュリティログ)、npmトークン、クラウドプロバイダーの認証情報の使用状況に異常がないか監査します。GitHub Actionsも監査してください。

    • GitHub Advisoryの案内に従い、影響を受けたバージョンのインストールを実行したホストは、すべて侵害されたものとして扱ってください。

直ちに封じ込めと修復を行う

  1. 影響を受けたバージョンを削除する

    • node_modulesと、悪意のあるバージョンを参照するロックファイルを削除し、既知の安全なバージョンを固定して再インストールします。

    • 不正なtarballが残っている可能性のあるプライベートレジストリ、キャッシュ、アーティファクトをすべて消去します。

  2. クリーンなマシンからシークレットをローテーションする

    • GitHub: 個人アクセストークンとSSHキーを失効させ、きめ細かなアクセス許可のトークンをローテーションします。OAuthアプリとデバイスの認可も確認してください。

    • npm: レジストリトークンを失効させます。

    • クラウド(AWS/GCPなど): アクセスキーとサービスアカウントキーをローテーションし、有効期限の長い認証情報を無効化します。

  3. 再ビルドと再デプロイ

    • ローテーション後、まずライフサイクルスクリプトを無効にしたクリーンな環境から再ビルドし、必要に応じてスクリプトを再度有効にします。

  4. ユーザー/テナントへの連絡

    • 該当期間中にビルドしたソフトウェアを配布している場合は、下流の利用者に通知し、アップグレードや再ビルドを案内してください。

サプライチェーンセキュリティ攻撃について

今回の事案に続き、同様の最近のセキュリティインシデントがいくつか発生しています。これまでも、CIやメンテナーアカウントへの攻撃によってリリースが乗っ取られる事例がありました。

Snykでサプライチェーンを安全に

回答者の87%がサプライチェーンのセキュリティ問題の影響を受けています。Snykでサプライチェーンを安全に保ちましょう。

続きを読む

feature insights context
Blog

自律型攻撃はすでに始まっている。防御もそのスピードに追いつかなければならない。

自律型攻撃者によって、防御に使える時間は短くなっています。継続的な検出、修復、検証、予防で、セキュリティチームが攻撃に歩調を合わせる方法をご紹介します。

Blog

Evo ADSのエージェント動作ガバナンスが一般提供開始:MCPの利用を管理

Evo ADSのエージェント動作ガバナンスが、MCPガバナンスから一般提供を開始しました。主要なAIコーディングエージェント全体で、MCPサーバーの利用を検出、承認、監視、記録、ブロックできます。

illustration hero ai
Blog

AIハリケーンが到来

AIはソフトウェア開発とサイバー攻撃の双方を加速させています。リーダーは、エージェントとコードを開発の初期段階から保護し、実行時に制御を徹底するとともに、防御策を独立して検証しなければなりません。