npmとyarnのパッケージマネージャに残る未修正の穴により、攻撃者がShai-Hulud対策を回避できる可能性

Koi Securityの研究者は、2つの主要プラットフォームがワーム攻撃を可能にする脆弱性を塞いでおらず、「JavaScriptエコシステムはもっと良くあるべきだ」と述べている。

新たに見つかった穴により、脅威アクターがShai-Huludのような悪意あるワーム攻撃を実行できるため、JavaScript開発者は成果物の配布にnpmやyarnプラットフォームを使うのをやめることを検討すべきだと、イスラエルの研究者が述べている。

この警告を発したのはKoi SecurityのOren Yomtovで、月曜日のブログで発見を報告した。複数のパッケージマネージャにおける6件のゼロデイ脆弱性を発見し、これによりハッカーが、昨年11月にShai-Huludがnpm上を横行して700以上のパッケージを侵害した後に推奨された防御策を回避できる可能性があるという。

その防御策は次のとおりだ:

  • ライフサイクルスクリプト(パッケージのインストール中に自動的に実行されるコマンド)を実行できないようにすること、
  • ロックファイルの整合性チェック(package-lock.json、pnpm-lock.yamlなど)をバージョン管理(git)に保存すること。ロックファイルは、依存関係ツリー内の各パッケージの正確なバージョンと整合性ハッシュを記録する。以後のインストールでは、パッケージマネージャが受け取ったパッケージをこれらのハッシュと照合し、何かが一致しなければインストールは失敗する。攻撃者がパッケージを侵害して悪意あるバージョンを公開した場合、整合性チェックが不一致を検知し、インストールをブロックするはずだ。

これらの推奨は11月以降、「GitHubのセキュリティガイドから企業のポリシー文書に至るまで、あらゆる場所で標準的な助言になった」とYomtovは述べる。「インストール時に悪意あるコードが実行できず、依存関係ツリーが固定されていれば、守られるからだ。」

11月の助言は依然有効だが、さらに対処すべき問題がある

その助言は今でも有効だと、彼はメールでのインタビューで付け加えた。

しかし、彼が発見しPackageGateと名付けた脆弱性により、ハッカーがその2つの防御策を回避できてしまうため、すべてのプラットフォームで対処されなければならないと彼は述べた。

これまでのところ、pnpm、vlt、Bunの各プラットフォームは回避の穴に対処したが、npmとyarnはまだだとYomtovは言う。したがって、JavaScript開発者にはpnpm、vlt、またはBunの使用を推奨する。

また、いずれにせよ、JavaScript開発者は使用しているJavaScriptパッケージマネージャを常に最新の状態に保ち、最新のパッチを確実に適用すべきだと付け加えた。

GitHubの声明は「困惑させられる」

npmをGitHubを通じて所有・監督しているMicrosoftは、脆弱性に関する質問をGitHubに回した。GitHubは声明で「レジストリ内のマルウェアをnpmが積極的にスキャンしているのと並行して、報告された新たな問題に対処するため積極的に取り組んでいる」と述べた。その間、プロジェクト開発者に対し、Shai-Hulud攻撃後に出されたこのブログの推奨事項を採用するよう促している。

声明はまた、昨年9月にGitHubがnpmのセキュリティ強化を進めていると述べたことにも触れており、認証やトークン管理の変更などが含まれるとしている。

GitHubはさらに、git経由でインストールされるパッケージにprepareスクリプトが含まれている場合、そのdependenciesとdevDependenciesがインストールされると警告している。「チケットが提出された際に共有したとおり、これは意図された設計であり、想定どおりに動作します。ユーザーがgit依存関係をインストールする際、そのリポジトリの設定ファイルを含む内容全体を信頼していることになります。」

Yomtovは、この「意図された設計」という説明を「困惑させられる」と感じた。

全体像ではない

彼によれば、スクリプト回避の脆弱性は2025年11月26日にHackerOneのバグ報奨金プログラムを通じて報告された。他のJavaScriptパッケージマネージャは報告を受け入れた一方で、npmはプラットフォームは意図どおりに動作しており、「ignore scripts」コマンドが未承認のリモートコードの実行を防ぐはずだと述べたという。

「私たちは誰かを辱めるためにこの投稿を書いたのではありません」とYomtovはブログで述べた。「JavaScriptエコシステムはもっと良くあるべきであり、そしてセキュリティ上の判断は、成り立たない防御策についての思い込みではなく、正確な情報に基づくべきだからです。

「標準的な助言である『スクリプトを無効化し、ロックファイルをコミットする』は、今でも従う価値があります。しかし、それが全体像ではありません」と彼は述べた。「PackageGateが完全に解決されるまで、組織はリスクについて自ら情報に基づいた選択を行う必要があります。」

この記事はもともとInfoWorldに掲載されたものです。

翻訳元: https://www.csoonline.com/article/4122436/unplugged-holes-in-the-npm-and-yarn-package-managers-could-let-attackers-bypass-defenses-against-shai-hulud-2.html

ソース: csoonline.com