Trusted Design

CVE-2024-4577 の詳細

CVEの情報

説明:
In PHP versions 8.1.* before 8.1.29, 8.2.* before 8.2.20, 8.3.* before 8.3.8, when using Apache and PHP-CGI on Windows, if the system is set up to use certain code pages, Windows may use "Best-Fit" behavior to replace characters in command line given to Win32 API functions. PHP CGI module may misinterpret those characters as PHP options, which may allow a malicious user to pass options to PHP binary being run, and thus reveal the source code of scripts, run arbitrary PHP code on the server, etc.

CVE更新日: 2024-06-09 20:15:09.550000

CVSSバージョン: 3.1

CVSSスコア: 9.8

KEVの情報

KEV更新日: 2024-06-12

EPSSの情報

EPSSは脆弱性が今後30日以内に悪用される確率を予測するスコアリングシステムで、FIRST(Forum of Incident Response and Security Teams)が提供しています。
EPSSのスコアが高いということは、攻撃されるリスクが高いことを意味するので、早めの対策が必要です。

EPSSスコア: 0.999870000

EPSS更新日: 2026-10-19 00:00:00

SSVCの情報

SSVCはカーネギーメロン大学ソフトウェア工学研究所が提案する脆弱性の評価手法です。ステークホルダーごとに脆弱性対応の優先度を決定することを支援します。
本サイトでは、CVE、KEV、EPSSの内容からExploitation(悪用状況)、Technical Impact(技術的影響)、Automatable(自動攻撃の可否)を判定します。

Exploitation: active

Technical Impact: high

Automatable: True

AIを使った解説

解説:

CVE-2024-4577に関する脆弱性調査

1. 脆弱性の概要

CVE-2024-4577は、Windows上でPHPをCGIモードで実行している環境に影響を与えるリモートコード実行(RCE)の脆弱性です。この脆弱性は、PHPの古い脆弱性(CVE-2012-1823)の修正をバイパスするもので、Windowsの「Best-Fit」マッピング機能がコマンドライン引数の文字を誤って解釈することに起因します。これにより、攻撃者は細工したリクエストを送信することで、PHPバイナリに意図しないオプションを渡し、任意のPHPコードを実行したり、スクリプトのソースコードを公開したりする可能性があります。

1.1 影響

本脆弱性が悪用されると、攻撃者はリモートから任意のコードを実行することが可能となります。これにより、情報漏洩、システムの破壊、ランサムウェアによる被害、ウェブシェル設置による持続的なリモート制御、マルウェアの設置・配信、DDoS攻撃への加担といった被害が発生する可能性があります。

1.2 深刻度

CVSS (Common Vulnerability Scoring System) v3.1スコアは9.8とされており、危険レベルは「緊急」と評価されています。 機密性、完全性、可用性への影響度も「高」と評価されています。 既に攻撃の実証コード(PoC)が公開されており、ランサムウェアキャンペーンに利用された事例も報告されているため、悪用される可能性が高いとされています。 CISAのKEV (Known Exploited Vulnerabilities) カタログにも掲載されています。

2. 対象となる環境

2.1 影響を受けるOSバージョン

本脆弱性は、Windows OS上でPHPをCGIモード (PHP-CGI) で実行している環境に影響します。Linux環境はこの特定の脆弱性の影響を受けません。

影響を受けるPHPのバージョンは以下の通りです。

  • PHP 8.1系: 8.1.29未満
  • PHP 8.2系: 8.2.20未満
  • PHP 8.3系: 8.3.8未満

PHP 5系、PHP 7系、およびPHP 8.0系はサポートが終了しているバージョンですが、影響を受ける可能性があるため、サポートされているバージョンへのアップグレードが推奨されています。

2.2 影響を受ける設定

  • Windows上でPHPをCGIモード (PHP-CGI) で実行している環境。
  • 特定のロケール設定 (中国語繁体字(Code Page 950)、簡体字(Code Page 936)、日本語(Code Page 932)) で動作するWindows環境。
  • Windows版XAMPPをデフォルト設定で運用している環境も影響を受けます。
  • PHPバイナリを公開している環境も影響を受けます。

3. 影響を受けた時の兆候

  • PHPのエラーログに異常なエントリーや認識されないオプションやパラメータが見られる。
  • 不審なアクセスや異常なリクエストパターンがネットワークトラフィック分析で検出される。
  • Webサーバーにウェブシェルが設置されていることが確認される。
  • サーバー上で情報漏洩やシステムの破壊、ランサムウェアの活動が確認される。
  • 意図しないプロセスが起動している、またはリソースの異常な消費が見られる(例: クリプトマイナーによるCPU使用率の増加など)。

4. 推奨対策

4.1 本対策

  • PHPのバージョンアップ:脆弱性が修正された以下のバージョンにアップデートしてください。
    • PHP 8.1.29以降
    • PHP 8.2.20以降
    • PHP 8.3.8以降 サポートが終了しているPHP 5系、PHP 7系、PHP 8.0系を使用している場合は、サポートされている最新バージョンへのアップグレードを強く推奨します。

4.2 暫定回避策(緩和策)

  • PHPをCGIモードで実行しないようにする:PHPの実行モードをFPMやモジュール版に変更することを検討してください。
  • 「Best-Fit」マッピングの無効化:Windowsの設定で「Best-Fit」マッピングを無効にすることを検討してください。
  • PHPバイナリへのアクセス制限:PHPバイナリへのアクセスを制限してください。
  • WAF (Web Application Firewall) の導入:WAFを導入することで、PHPサーバーへの変更を伴わずに攻撃を防御できる可能性があります。
  • リライトルールによるブロック:Apache HTTP Serverを利用している場合、特定のクエリ文字列をブロックするリライトルールを設定することで、一時的な緩和策とすることができます。ただし、これは特定のロケール環境にのみ有効な場合があります。
    • 例: apache RewriteEngine On RewriteCond %{QUERY_STRING} ^%ad [NC] RewriteRule .? - [F,L]
  • 定期的なログ監視:アクセスログ監視により、不審なアクセスの有無を確認することが重要です。
  • セキュリティ情報の収集と対応体制の整備:製品ベンダーやセキュリティベンダーから発信される情報を常に収集し、ゼロデイ脆弱性や攻撃が確認された際の対応手順を整備してください。

参照したサイト

NVDサイト

NVDでCVEの詳細を見る

戻る