Modern Frontend CVEs

対象CVE: CVE-2026-45321

[緊急警告] `@tanstack/*`パッケージのサプライチェーン攻撃:フロントエンド開発環境の機密情報窃取に注意!

npmで人気の`@tanstack/*`パッケージの一部にマルウェアが混入し、開発者のPCやCI/CD環境からクラウド認証情報、GitHubトークン、SSH鍵などの機密情報が窃取される重大なサプライチェーン攻撃が発生しました。対象バージョンを使用している場合は早急な確認と対応が必要です。

緊急速報:人気のTanStackパッケージにマルウェア混入!

フロントエンド開発者の皆さん、緊急性の高い情報です。npmで広く利用されている人気ライブラリ`@tanstack/*`の一部パッケージ(42種類)に、悪意のあるマルウェアが混入したバージョンが公開されました。この脆弱性(GHSA-g7cv-rxg3-hmpx / CVE-2026-45321)は「critical」と評価されており、皆さんの開発環境から非常に機密性の高い情報が窃取される恐れがあります。これは単なるデータ漏洩に留まらず、広範囲に被害を拡大させるサプライチェーン攻撃の一種です。

もし影響を受けるバージョンの`@tanstack/*`パッケージをインストールしていた場合、AWSやGCPなどのクラウド認証情報、GitHubトークン、SSH秘密鍵、npmトークンといった、開発にとって生命線となる情報が外部サーバーへ送信されている可能性があります。さらに、感染したシステムを通じて、皆さんが管理する他のnpmパッケージにもマルウェアが注入され、二次的な被害が拡大する危険性も指摘されています。

どのように攻撃されたのか?その巧妙な手口

攻撃者は、GitHub Actionsの認証メカニズムにおける脆弱性(例: `pull_request_target`の誤設定、GitHub Actionsキャッシュポイズニング、OIDCトークンのメモリ抽出)を悪用しました。これにより、正規のTanStack開発者のIDを装って悪意あるバージョンをnpmに公開することに成功しています。

この悪意あるパッケージには、`package.json`の`optionalDependencies`セクションに偽の`@tanstack/setup`パッケージが仕込まれていました。これはGitHubのフォークネットワーク上にある特定のコミットを参照しており、`npm install`などのコマンドが実行されると、この偽パッケージがダウンロードされます。その後、パッケージ内に隠された`tanstack_runner.js`スクリプトが、ホストパッケージのルートディレクトリにひっそりと配置された約2.3MBの難読化されたJavaScriptファイル`router_init.js`を実行します。この`router_init.js`こそが、皆さんの機密情報を窃取するマルウェア本体です。`optionalDependencies`は意図的にインストールが失敗するように設定されているため、`node_modules`ディレクトリには痕跡が残りにくいという、非常に巧妙な仕組みになっています。

影響を受ける条件と確認方法

以下の条件に当てはまる開発者やCI/CD環境が影響を受ける可能性があります。

特に、**2026年5月11日19:20 UTCから19:26 UTCの間**に、影響を受ける`@tanstack/*`パッケージのいずれかの悪意あるバージョンを`npm install`、`pnpm install`、または`yarn install`でインストールした場合に注意が必要です。

自身のプロジェクトが影響を受けているか確認するには、以下の点を確認してください:

1. `package.json`の`optionalDependencies`セクションに以下のエントリがあるか確認してください。 "optionalDependencies": { "@tanstack/setup": "github:tanstack/router#79ac49eedf774dd4b0cfa308722bc463cfe5885c" }

2. パッケージのルートディレクトリに約2.3MBの`router_init.js`ファイルが存在する場合も感染の兆候です。

※インストールせずに確認する場合は、`npm pack @tanstack/<name>@<version>`でtarballをダウンロードし、その中身を調べてください。

今すぐ取るべき対応策

もし感染の可能性がある場合は、以下の対応を**直ちに**実行してください。

1. **全ての機密情報のローテーション(更新)**: 最優先事項として、感染した可能性のある開発環境やCI/CD環境からアクセス可能だった全ての機密情報(AWS/GCPの認証情報、GitHubトークン、SSH秘密鍵、npmトークンなど)を**直ちに破棄し、新しいものに更新**してください。CI/CD環境についても同様に、ランナーがアクセスしていた全てのシークレットをローテーションし、クラウドの監査ログで不審な活動がないか徹底的に調査してください。

2. **パッケージのアップデートとクリーンインストール**: 現在、npmでは影響を受けるバージョンが非推奨化され、可能な限り公開停止されています。公式からクリーンな後続リリースが準備されていますので、プロジェクトで使用している`@tanstack/*`パッケージを、提供されるパッチ済みバージョンにアップデートし、`node_modules`ディレクトリとロックファイル(`package-lock.json`や`yarn.lock`など)を削除した上で、再度`npm install`や`yarn install`を実行してください。

3. **一時的な回避策**: アップデートがすぐにできない場合は、2026年5月11日19:00 UTCより前に公開された既知の安全なバージョンに依存関係を固定したり、`npm config set ignore-scripts true`を設定してインストール時のライフサイクルスクリプト実行を一時的に無効にすることも検討できます。ただし、これはあくまで一時的な措置であり、根本的な解決ではありません。

まとめと今後のセキュリティ対策

今回の事例は、オープンソースエコシステムにおけるサプライチェーン攻撃の脅威を改めて浮き彫りにしました。人気のあるパッケージであっても、悪意のある攻撃の標的となる可能性があることを認識し、常に警戒を怠らないことが重要です。

今後は、依存関係のバージョンを厳密に固定すること(特に本番環境)、`package-lock.json`などのロックファイルを定期的にレビューすること、そしてCI/CD環境のシークレット管理とアクセス権限を最小限にすることなど、より強固なセキュリティ対策を講じることを強く推奨します。開発者の皆さんのセキュリティ意識と迅速な対応が、更なる被害の拡大を防ぐ鍵となります。

← ブログ一覧に戻る