
Composerは、PHPのパッケージ管理システムです。
そして、PHPはWeb開発に特化したオープンソースのサーバーサイド・スクリプト言語です。
HTMLに埋め込んで使用でき、Webページ上で掲示板や会員機能などの「動的なコンテンツ」を制作できます。
初心者でも扱いやすく、WordPressをはじめとするWebシステムで幅広く利用されています。
このComposerに脆弱性が確認されています。
- CVE-2026-40176
CVSSスコアは7.8です。
不適切な入力検証の脆弱性により、Perforce VCSリポジトリを宣言する悪意のあるcomposer.json内のリポジトリ構成を制御する攻撃者が任意のコマンドを挿入し、Composerを実行しているユーザの権限でコマンドが実行される可能性があります。 - CVE-2026-40261
CVSSスコアは8.8です。
不適切なエスケープ処理に起因する入力検証の脆弱性で、シェルメタ文字を含む細工されたソース参照を介して、攻撃者が任意のコマンドを挿入できる可能性があります。
シェルメタ文字は、次のようなものです。- *(アスタリスク): 0文字以上の任意の文字列にマッチ。
- ?(クエスチョン): 任意の1文字にマッチ。
- [ ](ブラケット): カッコ内のいずれか1文字にマッチ。
- |(パイプ): 前のコマンドの標準出力を、次のコマンドの標準入力に渡す。
- >、>>(リダイレクト): 出力をファイルに保存(上書きまたは追記)。
- ;(セミコロン): コマンドを連続して実行する。
- $(ドル): 変数展開の開始(例:$VAR)。
- ‘(シングルクォート): メタ文字を完全に無効化し、文字そのものとして扱う。
- “(ダブルクォート): 変数展開やコマンド置換は有効だが、ワイルドカード機能は無効化。
- \(バックスラッシュ): 直後の1文字をエスケープ(特殊意味を打ち消し)
どちらの脆弱性もComposerのPerforce VCSドライバに存在し、シェルコマンドの構築に使用される値のエスケープ処理が不十分であることが原因です。
そして、これらの脆弱性の厳しい点は、対象システムにはPerforceがインストールされている必要がないという点です。
Perforceが存在している場合にそれに渡す文字列を適切に処理できていないことが問題のため、Perforceそのものはシステム上になくても問題が顕在化してしまうという内容の脆弱性になっています。
つまり、脆弱なバージョンのComposerを利用しているという条件を満たしさえすれば、この脆弱性は悪意ある活動に使用できてしまうということを意味します。
幸い、2026年4月14日時点では、実際にこの脆弱性が悪用されているという例は確認されていません。
これらの脆弱性は、最新版としては2.9.6、安定板としては2.2.27、でそれぞれ対策されています。
これらの対策済みバージョン以降にすぐに更新しましょう。
もちろん、Composerの更新版を入手する際の入手先も、本家であることをよく確認しましょう。
セキュアコーディングが叫ばれるようになって長い時間が経過していますので、安全なソフトウェアは増えてきていることと思いますが、すべてが十分に安全な状態になる日はまだ来ていません。
利用者の安全への意識が、最後の砦です。
注意していきましょう。
Composer 2.9.6: Perforce Driver Command Injection Vulnerabilities (CVE-2026-40261, CVE-2026-40176)
https://blog.packagist.com/composer-2-9-6-perforce-driver-command-injection-vulnerabilities/
| この記事をシェア |
|---|