CVE-2024-4577 — PHP-CGI 引数インジェクション(Windows)
CVE-2024-4577 · CVSS v3.1 9.8 (CRITICAL) — CNA: PHP Group · CVE公開日 2024-06-09
概要 / What it is
Windows上でApacheとPHP-CGIを組み合わせて動かし、特定のコードページ(文字コード設定)を使っている環境で、Windowsの「Best-Fit」文字置換によりPHP-CGIが一部の文字をコマンドラインオプションとして誤解釈する問題です。悪用されると、スクリプトのソースコード漏えいやサーバー上での任意のPHPコード実行につながる可能性があります。
English: Argument injection in PHP-CGI on Windows (Apache + PHP-CGI, certain code pages) via Windows "Best-Fit" character mapping; may allow source disclosure or arbitrary code execution.
影響を受けるバージョン / Affected versions
- PHP 8.1.* : 8.1.29 未満
- PHP 8.2.* : 8.2.20 未満
- PHP 8.3.* : 8.3.8 未満
条件: Windows + Apache + PHP-CGI、かつ特定のコードページ設定。Linux上のPHP-FPMやmod_phpはこのCVEの対象条件に含まれません。サポートが終了した8.0以前のブランチには公式修正が提供されていません。
自分のPHPバージョンを確認する方法
- サーバーにSSHできる場合:
php -v(CLI。Webサーバー側と異なる場合があります) - Webで実際に使われているバージョン: 管理画面のサーバー情報、または一時的に
phpinfo()を設置して確認し、確認後すぐ削除 - WordPress: 管理画面「ツール → サイトヘルス → 情報 → サーバー」
対策 / Fix
- 8.1.29 / 8.2.20 / 8.3.8 以降(できれば各ブランチの最新リリース)へ更新。なお同系統の回避策(バイパス)である CVE-2024-8926 は 8.1.30 / 8.2.24 / 8.3.12 で修正されているため、それ以降を推奨します。
- PHP-CGIをWebから直接呼び出す構成自体を見直し、PHP-FPM等への移行を検討。
- サポート切れのブランチ(8.0以前、8.1は2025年末でEOL)は、サポート中のブランチへ移行。
よくある質問
CVE-2024-4577はLinuxサーバーも影響を受けますか?
CVEの記載では、影響条件はWindows上でApacheとPHP-CGIを使う構成です。Linuxで一般的なPHP-FPMやmod_php構成はこの条件に該当しません。ただしPHPの古いバージョンには別の脆弱性がある可能性があるため、更新は推奨されます。
どのバージョンに更新すればよいですか?
8.1.29/8.2.20/8.3.8で修正されましたが、関連する回避策CVE-2024-8926が8.1.30/8.2.24/8.3.12で修正されているため、それ以降、できればサポート中ブランチの最新版を推奨します。
出典 / Sources
- CVE-2024-4577 (CVE.org)
- php-src Security Advisory GHSA-3qgc-jrrr-25jv
- DEVCORE: Security Alert CVE-2024-4577
- NVD: CVE-2024-4577
最終確認日: 2026-10-21