Composer Flaw Lets Malicious Dependencies Expose SSH Keys and Sensitive Files
2026/08/31 CyberSecurityNews — Composer が公表したのは、PHP で広く利用されている依存関係管理ツールである Composer におけるセキュリティ脆弱性 CVE-2026-59944/CVE-2026-59946 と、それを修正するバージョン 2.10.3/2.2.30 に関する情報である。この脆弱性を突く、悪意のあるパッケージまたは侵害されたパッケージが、自身のインストール・ディレクトリ外にあるファイルの権限を変更する可能性がある。さらに、脆弱な Composer バージョンが安全ではないパッケージ・バイナリのパスを処理した場合に、共有システム/マルチテナント・システム上の機密ファイルが露出する可能性がある。

このアドバイザリの深刻度は中程度であり、Composer バージョン 2.3.0〜2.10.3 未満/1.0〜2.2.30 未満に影響を及ぼすが、すでに バージョン 2.10.3/2.2.30 により修正されている。この脆弱性は、Composer によるパッケージ・バイナリの管理方法に存在する、パス・トラバーサル/シンボリックリンク処理の問題に起因する。
Composer の脆弱性による情報露出
パッケージのディレクトリ外を指すシンボリックリンクが、悪意のパッケージにより、バイナリとして宣言される可能性がある。インストール時に、そのリンクをたどる Composer は、外部ファイルの権限の変更や、プロジェクトの “vendor/bin” ディレクトリ配下へのバイナリとしての登録などを引き起こす可能性がある。
この脆弱性だけで、直接のリモート・コード実行や、被害者のデータへの即時的なアクセスが攻撃者に許されるわけではない。ただし、権限の変更により、それまで所有者だけに読み取りが許されていたファイルが、すべてのユーザーによる読み取りや実行が可能になる恐れがある。そのため、共有ホスティング環境/マルチユーザー・サーバ/ビルド・プラットフォームでは、他のローカル・ユーザーによるアクセスや、プロセスから露出したコンテンツへのアクセスにつながる可能性がある。
この問題は、Composer アドバイザリ GHSA-gjfg-22fp-rrxx (CVE-2026-59946) で導入されていた保護機能の回避にも関連している。以前のセキュリティ強化では、宣言されたパッケージ・バイナリに含まれる文字列としての “..” パス・セグメントが拒否されていたが、この検証が適用されていたのは依存関係解決の 1 段階だけであった。
セキュリティ研究者が発見したのは、Composer が処理するメタデータがシンボリックリンクや以前の環境から復元された依存関係に由来する場合、この検証がスキップされる可能性であり、特に組織が信頼できないソースまたは信頼度の低いソースから “vendor” ディレクトリを再利用する場合にリスクが最も高くなる。
例として挙げられるのは、共有 CI キャッシュから復元された “vendor” ディレクトリや、以前のコンテナ・ビルド・ステージからコピーされた “vendor” ディレクトリ、古い Composer バージョンから保持されていた “vendor” ディレクトリ、信頼度の低いビルド・プロセスによって変更された “vendor” ディレクトリなどである。
Composer アドバイザリ GHSA-96h3-5x6v-m776 (CVE-2026-59944) によると、ビルド/デプロイ・パイプラインで通常の “composer install” コマンドを実行すると、Composer を実行しているアカウントの権限が悪用され、危険な権限変更が通知なしに適用される可能性がある。
現時点の Composer は、宣言された全バイナリについて、インストール対象パッケージのディレクトリ内を指すことを検証し、バイナリがパッケージのパス外を指している場合は対象ファイルに変更を加えず、そのバイナリをスキップして警告を表示する。したがって、管理者/開発者にとって必要なのは Composer 2.10.3/2.2.30 への即時アップグレードである。さらに、信頼できるソースから “vendor” ディレクトリを再構築することも重要であるため、CI/CD パイプライン/キャッシュされた依存関係/コンテナ・ビルド/デプロイ・システムに注意する必要がある。
この脆弱性は、CWE-22 パス・トラバーサル/CWE-59 不適切なリンク解決/CWE-732 重要なリソースに対する不適切な権限割り当てに関連する。アドバイザリの CVSS ベクターが示しているのは、攻撃の複雑性が低く、機密性への影響が高いことである。その一方で、悪用に際しては、依存関係のインストール・プロセスのローカル実行や、ユーザー操作などが必要となる。
PHP 向けの依存関係管理ツールである Composer には、悪意のあるパッケージが所有するバイナリパスの不適切な解決に起因する、セキュリティ脆弱性が存在します。それにより、ディレクトリ・トラバーサル防止処理の迂回による領域外ファイルのアクセス権限の変更/マルチテナント環境や CI パイプラインにおける重要情報の外部漏洩といった深刻な影響が生じます。ユーザーに強く推奨されるのは、影響を受けるバージョンから修正済みの 2.10.3 や 2.2.30 への最新版更新/信頼できない環境で構成された vendor ディレクトリの無効化といった、安全対策の迅速な実施です。
You must be logged in to post a comment.