開発現場で日常的に利用されるPHP向けパッケージ管理ツール「Composer」に、複数の脆弱性が見つかった。中でも深刻な問題では、悪意ある依存パッケージが混入すると、通常のインストールや更新をきっかけにプロジェクト外のファイルを書き換えられる恐れがある。開発者や運用担当者が今すぐ確認すべきポイントを整理する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
PHP向けパッケージ管理ツール「Composer」に複数の脆弱(ぜいじゃく)性が見つかった。対象は2.3.0以上2.10.2未満および2.2.29未満(2.2系LTS)、サポート終了済みの1系統とされる。修正版は2.2.29および2.10.2で提供された。
公開された脆弱性は「CVE-2026-59946」「CVE-2026-59947」「CVE-2026-59948」の3件。このうち最も深刻なCVE-2026-59948は、共通脆弱性評価システム(CVSS)v3.1で7.0(High)と評価されている。
CVE-2026-59948は、信頼できない第三者リポジトリに公開された悪意あるパッケージが依存関係に混入した場合、Composerのパッケージ名検証の不備を悪用し、「vendor」ディレクトリだけでなくプロジェクト外の任意の場所にファイルを書き込める問題だ。悪意ある依存パッケージが含まれていた場合、通常の「composer install」や「composer update」でも攻撃が成立する可能性がある。
書き込み先にはシェルの起動設定ファイルやSSHのauthorized_keys、cron設定などが含まれ、攻撃者がコード実行につながる設定を書き込む恐れがある。インターネット越しに単独で悪用できる脆弱性ではないが、サプライチェーン攻撃の一環として悪意あるパッケージが混入した場合には深刻な影響を及ぼす可能性がある。
修正版では、依存関係の解決後に全てのパッケージ名を検証し、不正な名前が見つかった場合、「composer.lock」への書き込みやインストールを開始する前にエラーとして処理するよう改められた。現時点では「Packagist.org」と「Private Packagist」では同様の不正パッケージが登録されないよう対策済みとされている。信頼できないリポジトリを利用する必要がある場合は、「Private Packagist」など社内リポジトリを経由してパッケージを管理することが推奨されている。
CVE-2026-59947は、Composerを-vvvオプション付きで実行した際、URLに埋め込まれたHTTP Basic認証の利用者名が詳細ログに平文で出力される問題だ。URLに認証情報を埋め込む運用では、「GitHub Personal Access Token」などの秘密情報がログに残る恐れがあった。影響を受けるのは、認証情報をURLに埋め込み、-vvvの実行結果を保存・共有したケースに限られる。一方、「auth.json」や「COMPOSER_AUTH」を利用する構成では影響しない。
修正版では利用者名も伏せ字化され、秘密情報がログに出力されないよう変更された。更新できない場合は-vvvオプションの利用を避ける他、認証情報をauth.jsonまたはCOMPOSER_AUTHに移行するとともに、既存のCIログなどに秘密情報が残っていないか確認するよう求められている。CVSS v3.1スコアは4.7(Medium)だ。
CVE-2026-59946は、composer.jsonのbin項目に「..」を含む不正なパッケージによって、Composerがパッケージ外にある既存ファイルの権限(chmod)を書き換えてしまう問題だ。ファイル権限が0755に変更されることで、秘密鍵や.envファイル、「AWS」の認証情報、.netrcなど、本来は厳格に保護されるべきファイルを同一ホスト上の他ユーザーが読み取れる状態になる恐れがある。
この脆弱性によってファイルの内容が改ざんされたり、直接コードが実行されたりすることはない。現時点ではPackagist.orgで公開されたパッケージを悪用した事例も確認されていない。修正版ではbin項目に「..」を含むパッケージを拒否するほか、Packagist.orgでも同様の検査が実施されるようになった。なお、1系統はサポート終了済みのため修正は提供されず、2系統への移行が推奨されている。CVSS v3.1スコアは6.1(Medium)と評価されている。
これら3件の脆弱性はいずれも2.2.29および2.10.2で修正された。Composerを利用する開発者や組織は速やかに最新版へ更新するとともに、独自リポジトリや外部リポジトリの利用方法を見直したい。また、CIログなどに認証情報が残っていないかどうかを確認し、依存パッケージの取得元や管理方法についても改めて点検することが望まれる。
PHP利用者は見逃し厳禁 TLS通信でサービス停止を招くHigh脆弱性を修正
Linuxカーネルに15年潜伏した脆弱性が見つかる 攻撃成功率は97%
企業が見直すべき「脅威像」〜国家ハッカーが“あえてAIに全てを任せない”理由〜
悪用成功率99%、Linuxカーネルに新ゼロデイ「Bad Epoll」が見つかる
KDDIの最大1422万件の情報漏えい事件 その裏には陸自USB問題と同様に中国の影?Copyright © ITmedia, Inc. All Rights Reserved.
編集部からのお知らせ