2026年8月4日、攻撃者が、npmでの週間ダウンロード数が約数億回に上るキーバリュー型キャッシュライブラリ「keyv」のメンテナーのGitHubアカウントを乗っ取り、cacheable、flat-cache、file-entry-cache、cache-managerを含むメンテナーのパッケージファミリー全体に、認証情報を盗み出すワームを仕込みました。 「ChainDrop」として追跡されたこのワームは、さらに数百のパッケージに拡散し、それらのパッケージの月間インストール数は合計で20億回以上に達しました。
危険なのはダウンロード数そのものではなく、悪意のあるコードがどのようにして信頼されるようになったかという点です。攻撃者はプロジェクト独自の自動リリースパイプラインを通じて公開したため、改ざんされたバージョンには有効な出所情報――つまり、そのパッケージが正規のソースから公式のパイプラインによってビルドされたことを示す署名付き証明――が付いていました。この証明は本来、安全性を示すシグナルとなるはずでした。しかし、パイプライン自体が侵害されていたため、この証明は本物でした。開発者や、署名を検証するセキュリティツールにとって、悪意のあるバージョンは完全に本物のように見えたのです。
ChainDropは、研究者たちが2025年9月以来追跡してきたキャンペーンにおける最新の波である。これには、Shai-Hulud 1.0(2025年9月)、2.0(2025年11月)、およびMini Shai-Hulud、第4波(2026年5月)が含まれる。各波はエスカレートしており、後の亜種ではより攻撃的な拡散手法や、より広範なサプライチェーンの脆弱性への悪用が見られる。
現時点で判明していること(2026年8月6日)
- 日付:keyv@6.0.0が開始日として確定しており、2026年8月4日に公表されました。
- 侵入経路:この攻撃は、メンテナンス担当者のGitHubアカウントが乗っ取られたことから始まり、悪意のあるリリースはプロジェクトの正規の公開パイプラインを通じて行われた。
- 規模:数値はトラッカーによって異なりますが、すべての報告が、これが非常に大規模な npm サプライチェーンインシデントであったという点で一致しています。StepSecurity は初期段階で 435 パッケージ/1,557 バージョンと報告していましたが、Aikido やその後の報告により総数はさらに増加し、一部の推計では1,300 パッケージ以上、月間ダウンロード数は約 20 億件に達するとされています。
- ペイロード:setup.mjs を使用した事前インストール経路が存在し、これによって Bun がダウンロードされ、大規模な難読化された認証情報窃取型ペイロードが実行される。
- 出典:研究者らは、これを「Shai-Hulud」マルウェアファミリーに分類している。
信頼されていたシステムが、そのシステム自身に対して悪用された
ChainDropが特に懸念される点は、派手なエクスプロイトや偽のダウンロードサイトに依存していなかったことです。その代わりに、通常のソフトウェアサプライチェーン――何百万人もの開発者が利用しているのと同じパッケージの公開およびインストールプロセス――を悪用したのです。
具体的には、パッケージは一見正当なものに見えながら、インストール時に密かに悪意のあるコードを実行するように仕組まれているということです。セキュリティチームによると、このマルウェアは、GitHubトークン、npmの認証情報、AWSキー、Kubernetesのシークレット、その他のアクセスデータなど、開発者のマシンやCI/CDシステムから機密情報を盗み出すために作成されたとのことです。
このリスクは開発者に限定されたものではありません。影響を受けるパッケージを使用している組織であれば、ビルドシステム、依存関係、自動化されたリリースパイプラインを通じて、間接的にセキュリティ侵害の影響を受ける可能性があります。
ChainDropは、オープンソースの依存関係が単なる開発者の懸念事項ではなく、ビジネス上のリスクであることを改めて思い起こさせる出来事です。
単なる開発者固有のリスクではなく、ビジネス上のリスクである
JavaScript や Node.js ソフトウェアに依存している組織にとって、ChainDrop の事例は、オープンソースの依存関係が単なる開発者の懸念事項ではなく、ビジネス上のリスクであることを改めて認識させるものです。
侵害されたパッケージは、依存関係やビルドシステムを通じて間接的に引き継がれる可能性があり、その結果、認証情報の盗難、クラウドインフラへの不正アクセス、さらには大規模なシークレットのローテーションやインシデント対応を招く恐れがあります。PCI DSS、DORA、NIS2、CMMCの下でそうであるように、ソフトウェアの完全性、アクセス制御、およびサードパーティリスクが管理環境内に位置付けられている場合、そのリスクはコンプライアンスやガバナンスにも直接的に影響を及ぼします。
推奨される即時対応
2026年8月4日以降に、影響を受けるパッケージをインストールした可能性がある場合は:
- 依存関係をスキャンする: SBOMを生成し、既知の悪意のあるバージョンに対して依存関係をスキャンする
- 無効化する前の画像:トークンを更新する前の、影響を受けたシステムの画像。このマルウェアは認証情報の無効化を監視しており、先にトークンを更新してしまうと、ハンドラーが起動してしまう可能性があります。
- 公開されているシークレットのローテーション:アクセス可能なすべてのシークレット(npmトークン、GitHub PAT、SSHキー、クラウド認証情報)をローテーションし、MFAを必須とする
- 名前ではなく正確なバージョンで照合する: パッケージ名ではなく、解決済みの正確なバージョンと照合する 。インシデント発生中にレジストリタグが変更された
- リポジトリレベルのフックを削除する: node_modulesだけでなく、.claude/settings.json および .vscode/tasks.jsonも確認してください
- CI/CDの監査: CI/CDおよびGitHub Actionsを監査し 、予期しない公開や新しいワークフローがないか確認する
SBOM を使って自社の露出状況を把握する
難しいのは可視性の問題です。改ざんされたバージョンは依存関係ツリーの奥深くに埋もれており、本物のように見えます。MetaDefender ™( Software Supply Chain )のSBOM機能を使用して影響を受けるパッケージをスキャンしたところ、改ざんされたバージョンは、その出所を信頼されることなく、警告として flag されました。



ここから得られる教訓は、この種の攻撃に対する確実な防御策は、コンポーネントの出所を信頼するのではなく、その内容を確認することにあるということです。
主なポイント
- 出所は起源を証明するものであり、完全性を証明するものではありません。侵害されたパイプライン上で有効な署名が行われても、署名された悪意のあるパッケージが生成されることになります。単なる証明だけでなく、内容そのものを検証してください。
- トリガーとなるのはインストールだけではありません。リポジトリレベルのIDEやエージェントのフックは、ファイルを開いた際に実行されることがあります。レビューの範囲を「npm install」だけにとどめないようにしましょう。
- このキャンペーンは現在も継続中です。ChainDropは、2025年9月以降エスカレートし続けている一連の攻撃の最新の波です。根本的なパイプラインや認証情報の管理上の不備に対処せずに、個々のインシデントを「解決済み」として片付けてしまうと、次の攻撃の余地を残すことになります。
