Mini Shai-Hulud関連の新たなnpmサプライチェーン攻撃で悪性版パッケージ10件が公開される
Mini Shai-Hulud関連の新たなサプライチェーン侵害について、Socketの脅威リサーチチームが報告。日本時間2026年8月29日早朝に、npmパッケージ「@7nohe/openapi-react-query-codegen」の悪意あるバージョン10件が2回に分けて公開されていたという。
@7nohe/openapi-react-query-codegenは、OpenAPIスキーマからReact Query(TanStack Query)のカスタムHooksコードを自動生成できるライブラリ。全バージョン合わせて週間ダウンロード数はおよそ15万回ほどあるとされる。
Socketによれば、脅威アクターはコメントによってトリガーされるGitHub Actionsの公開ワークフローを悪用することで、有効なnpmプロべナンスを持つ以下10件の悪性バージョンを公開できたとされる。
- @7nohe/openapi-react-query-codegen@0.0.0-365d4eb738d3146583431948d3ba6e27a32556be
- @7nohe/openapi-react-query-codegen@0.0.0-ec7876d6c917dad516ba69bbfafc948b834bf0ab
- @7nohe/openapi-react-query-codegen@0.5.4
- @7nohe/openapi-react-query-codegen@0.5.5
- @7nohe/openapi-react-query-codegen@1.6.3
- @7nohe/openapi-react-query-codegen@1.6.4
- @7nohe/openapi-react-query-codegen@2.2.1
- @7nohe/openapi-react-query-codegen@2.2.2
- @7nohe/openapi-react-query-codegen@3.0.3
- @7nohe/openapi-react-query-codegen@3.0.4
これらの汚染版には、JavaScriptローダー(3FWCvzduYZg.js)が含まれており、インストール中に攻撃者のコードが実行される。すると、このJavaScriptローダーによって、認証情報やシークレットを盗み出す第2段階のペイロードが実行されるという。このペイロードは以下のような情報を窃取できるほか、過去のMini Shai-Huludキャンペーンとも合致する自己伝播機能も備えるとされる。
- クラウド認証情報
- パッケージレジストリの認証情報
- GitHub Actionsのシークレット
- AIエージェントの構成設定情報
Socketによれば、信頼されていないGitHubアカウントからプルリクエストに「npm publish」というコメントを追加すると、当該リポジトリの信頼されたOIDCアイデンティティを使って信頼されていないフォークのコードを公開できるようになっていたとされる。この結果、正規のプロべナンスを有する悪性パッケージが公開可能になっていたのだという。
同パッケージのメンテナによれば、現在までに影響を受けたパッケージはいずれもnpmから削除済み。ただし、日本時間8月29日の05:00頃 〜 07:51頃(通常のインストールで汚染版が入る状態)および07:52頃 〜 13:10頃(deprecate済み。新規のインストールでは選ばれないが、レジストリ上には残存)の時間帯が、危険な時間帯だったとされる。同メンテナは、この期間にインストールしてしまった場合には、「そのマシンやCIランナーから到達できる認証情報(npm・GitHubのトークン、SSH鍵、クラウドのアクセスキー、環境変数のシークレット)をすべてローテーションすること」を強く推奨している。
Socketは、今回の侵害キャンペーンが2025年の「Shai-Hulud」npmワームおよびその後の「Mini Shai-Hulud」キャンペーンに関する公開情報と実質的に一致していると指摘。重複がみられる点として、以下を挙げた。
- インストール/ビルドパス中に実行されるnpmサプライチェーン攻撃である点
- 大規模な難読化されたJavaScriptバンドルと、Bunベースの第2ローダー
- 環境変数、ファイル、プロセスメモリ、クラウドメタデータからの広範な認証情報の収集
- リポジトリのシークレットを漏洩させるためのGitHub Actionsワークフローの改変
- 盗まれたnpmおよびGitHubの権限の検証と再利用
- 書き込み可能なメンテナーまたはレジストリスコープを通じた自己伝播型のパッケージ汚染
- GitHubリポジトリを利用した運用、保存、またはコマンド交換
一方で、以下のような相違点もあることから、共通の実行主体やキャンペーンの同一性が立証されるわけでもないと述べた。
- 今回のサンプルには、過去のShai-Hulud/Mini Shai-Huludキャンペーンに関するレポートで説明されている「postinstall」パターンではなく、Unicodeエスケープされた「binding.gyp」トリガーが含まれている
- 今回のサンプルはLinuxだけでなくmacOSにも対応しており、暗号化されたAES-GCM/RSAエンベロープや攻撃者が作成した公開リポジトリを使用する
- RubyGems/JFrogの悪用、ゲート付きPyPIタイポスクワッティング、開発者ツールの設定の永続化、署名付きGitHubコミットコマンドチャネル、SSHの伝播といった手法も組み込まれている
Socketは、こうした類似点・相違点によってShai-Hulud/Mini Shai-Huludいずれかのキャンペーンへの帰属が証明されるわけではないと注記。今回の@7nohe/openapi-react-query-codegenパッケージ固有のハッシュ、文字列、パス、エンドポイントを用いて検出を行う必要があるとして、ブログ記事の中でさらなる技術的詳細や関連するIoC情報を共有している。















