Composerのパス traversal脆弱性、悪意あるパッケージが機密ファイルを露出させる恐れ

Composerで新たに公表された脆弱性により、悪意のある、または侵害されたPHPパッケージが、本来のインストールディレクトリ外にあるファイルのパーミッションを変更できる可能性があることが判明しました。これにより、共有環境やマルチテナント環境で機密データが露出する恐れがあります。

CVE-2026-59944として追跡されているこの脆弱性は、Composerバージョン2.3.0から2.10.2、および1.0から2.2.29に影響します。Composerはバージョン2.10.3および2.2.30でこの問題に対処しました。

この脆弱性は「中程度」と評価され、CVSS v3.1のスコアはベクターCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:Nに基づいています。分類はCWE-22(パストラバーサル)、CWE-59(リンク解決の不適切な処理)、CWE-732(重要リソースに対する不適切なパーミッション割り当て)です。

Composerパッケージは、vendor/binディレクトリを通じて公開される実行可能バイナリを宣言できます。悪意のあるパッケージは、パッケージディレクトリの外に出るようなバイナリパスを指定したり、そのディレクトリ外のファイルを指すシンボリックリンクを利用したりする可能性があります。

インストール時、Composerは対象ファイルのパーミッションを変更し、それを指す実行可能なvendor/binコマンドを作成することがあります。もし外部の対象ファイルが通常はその所有者のみが読み取り可能であるにもかかわらず、Composerプロセスによって変更可能な状態のままであれば、この脆弱性によってそのファイルが誰でも読み取り・実行可能な状態になってしまう恐れがあります。

これは機密性のリスクを生み出します。共有ホスト上の他のユーザーが、本来アクセス制限されていたファイルを読み取れるようになってしまう可能性があるためです。ただし、この問題自体がリモートコード実行を可能にしたり、攻撃者に影響を受けた環境からデータを直接取得する手段を与えたりするものではありません。

アドバイザリによると、今回の脆弱性は、以前のGHSA-gjfg-22fp-rrxx修正で導入された保護機能を回避するものだといいます。その際の対策は、宣言されたパッケージバイナリ内でのリテラルな..パスセグメントを拒否するものでしたが、それは依存関係解決の単一の段階でのみ適用されるものでした。

シンボリックリンク解決後のパスや、すべてのバイナリ復元処理経路にわたる完全な検証は行われていませんでした。組織がこの影響を受けやすいのは、composer install操作が別の場所で生成されたvendorディレクトリを再利用する場合です。

これは、ビルドシステムが共有または信頼できないCIキャッシュから依存関係を復元する場合や、以前のコンテナビルド段階からコピーする場合、旧バージョンのComposerから引き継がれたままにしている場合、あるいは信頼度の低いビルドステップにそのディレクトリへの書き込みを許可している場合などに発生し得ます。

もう一つの攻撃経路として、vendor/composer/installed.json内の依存関係メタデータを改ざんする手法もあります。

Composerはインストール完了時、このメタデータから不足しているバイナリを再生成したり、再インストール時にこれを再利用したりすることがあります。こうしたケースでは、当初の依存関係解決プロセスで適用されていた検証がスキップされてしまう可能性があります。

このパーミッション変更はComposerを実行しているアカウントの権限で静かに行われるため、CI/CDランナー、デプロイ用ユーザー、共有ホスティング環境は特に注意して確認すべき対象となります。

修正版のComposerでは、宣言されたすべてのバイナリが、現在インストール中のパッケージのディレクトリ内で解決されることを検証するようになりました。Composerは、その境界の外部で解決されるバイナリについてはスキップし、外部ファイルを変更する代わりに警告を表示します。

ユーザーは直ちにComposer 2.10.3または2.2.30へアップグレードすべきです。アップグレードこそが唯一の完全な対策となります。

セキュリティチームはまた、キャッシュされた、あるいは引き継がれたvendorディレクトリを信頼できないものとして扱い、依存関係をクリーンな環境で再構築し、CIキャッシュへの書き込みアクセスを保護し、アプリケーションのデプロイパス配下で予期しない実行可能ファイルやパーミッション変更がないか調査すべきです。

セキュリティチームに、不審な活動をより迅速に調査し、ビジネスへの影響が拡大する前に脅威を封じ込めるための可視性とコンテキストを提供しましょう。ANY.RUNで調査能力を強化

翻訳元: https://cyberpress.org/composer-path-traversal-flaw/

本記事は cyberpress.org の記事を翻訳・要約したものです。