攻撃者はGit依存関係を介してnpmの「Shai-Hulud」防御を回避できる

Image

「Shai-Hulud」サプライチェーン攻撃の後にNPMが導入した防御メカニズムには弱点があり、脅威アクターがGit依存関係を介してそれらを回避できる。

総称してPackageGateと呼ばれるこれらの脆弱性は、pnpm、vlt、Bun、NPMなど、依存関係の管理を可能にするJavaScriptエコシステム内の複数のユーティリティで発見された。

エンドポイントおよびサプライチェーンセキュリティ企業Koiの研究者が問題を発見し、各ベンダーに報告した。研究者によれば、NPMを除くすべてのツールで問題は対処されたが、NPMは挙動が「想定どおりに動作している」として報告をクローズしたという。

スクリプト実行の回避

自己拡散型のShai-Huludサプライチェーン攻撃は当初、2025年9月中旬 にnpmに影響を与え、187個のパッケージが侵害された。1か月後、攻撃は新たな500パッケージの波として再来し、その後、3万を超える自動生成GitHubリポジトリで40万件の開発者シークレットが露出したと評価された。

Shai-Hulud攻撃や、「s1ngularity」や「GhostAction」といった他のサプライチェーン事案を受け、NPMの運営者であるGitHubは追加のセキュリティ対策を実装する計画を発表し、いくつかの緩和策を提案した。

その中には、インストール時にライフサイクルスクリプトを無効化(‘–ignore-scripts=true’)することや、ロックファイルの整合性と依存関係のピン留めを有効にすることが含まれる。

Koiのセキュリティ研究者は発見したが、NPMがGitリポジトリから依存関係をインストールする際、悪意のある‘.npmrc’などの設定ファイルがgitバイナリのパスを上書きでき、その結果、‘—ignore-scripts’フラグが‘true’に設定されていても完全なコード実行につながる可能性があるという。

研究者は「過去に、この手法を悪用してリバースシェルを作成する概念実証をアクターが公開した証拠がある」と警告し、この問題が単なる理論ではないことを強調した。

他のJavaScriptパッケージマネージャーでは、スクリプト実行のセキュリティ対策の回避は別のメカニズムによって達成され、さらにpnpmとvltではロックファイル整合性の回避も可能だという。

Bunは影響を受ける欠陥をバージョン1.3.5で修正し、vltはKoiから連絡を受けて数日以内に修正、pnpmはCVE-2025-69263およびCVE-2025-69264として追跡される2つの欠陥に対する修正をリリースした。

NPMの対応

Koi Securityは、バグバウンティのスコープが‘—ignore-scripts’によるスクリプト実行を明示的に対象としていることから、NPMのHackerOneに提出した脆弱性レポートで調査結果を報告した。

それにもかかわらず、npmは、ユーザーがインストールするパッケージの内容を精査する責任があることを理由に報告を却下し、研究者が行った複数回のフォローアップにも応答しなかった。

BleepingComputerはこの件についてGitHubにコメントを求め、広報担当者は、npmがレジストリを積極的にマルウェアスキャンしているため、問題の解決に取り組んでいると述べた。 

「npmエコシステムのセキュリティは共同の取り組みであり、ソフトウェアサプライチェーンを強化するため、信頼できる公開(trusted publishing)と、二要素認証を強制した粒度の細かいアクセストークンの採用をプロジェクトに強く推奨します」とGitHubの広報担当者はBleepingComputerに語った。

翻訳元: https://www.bleepingcomputer.com/news/security/hackers-can-bypass-npms-shai-hulud-defenses-via-git-dependencies/

ソース: bleepingcomputer.com