Windows 版 PHP CGI での処理において言語処理の不備により遠隔から任意のコードが実行可能となる脆弱性(Scan Tech Report) | ScanNetSecurity
2025.02.28(金)

Windows 版 PHP CGI での処理において言語処理の不備により遠隔から任意のコードが実行可能となる脆弱性(Scan Tech Report)

2024 年 6 月に公開された PHP の脆弱性を悪用するエクスプロイトコードが公開されています。

脆弱性と脅威
https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2024-4577&vector=AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1&source=PHP%20Group
◆概要
 2024 年 6 月に公開された PHP の脆弱性を悪用するエクスプロイトコードが公開されています。攻撃者に脆弱性を悪用されると、PHP のアプリケーションが稼働している Web サーバの OS に、サービスの実行権限で侵入されてしまいます。ソフトウェアのアップデートや設定変更により対策しましょう。

◆分析者コメント
 幅広いバージョンの PHP が脆弱性の影響を受けると報告されていますが。英語以外の特定のロケールが設定された Windows OS にインストールされた PHP のみが影響を受けると報告されています。CGI モードが利用可能な設定が前提条件として必要な脆弱性ですが、意図せず CGI の設定が有効化されている場合があり、ロケールが日本語の OS は脆弱性の影響を受けると報告されているため、Windows サーバ上で PHP のアプリケーションを運用している場合は設定の見直しや PHP のアップグレードなどにより対策すると良いでしょう。

◆深刻度(CVSS)
[CVSS v3.1]
9.8

https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2024-4577&vector=AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1&source=PHP%20Group

◆影響を受けるソフトウェア
 Windows 版の PHP のうち、以下のバージョンが当該脆弱性の影響を受けると報告されています。

* PHP 8.3 系のうち 8.3.8 よりも古いバージョン
* PHP 8.2 系のうち 8.2.20 よりも古いバージョン
* PHP 8.1 系のうち 8.1.29 よりも古いバージョン

 サポートが打ち切られているバージョンについては影響範囲が明らかではありません。また、以上のバージョンの PHP の使用に加えて、Windows OS が以下のロケールで動作している場合に脆弱性が発現すると報告されています。

* 中国語(簡体字)
* 中国語(繁体字)
* 日本語

 全てのロケールでは脆弱性が検証されておらず、他にも脆弱性の影響を受けるロケールが存在する可能性があるため注意が必要です。ロケールが英語である場合は当該脆弱性の影響を受けないことが確認されています。

◆解説
 プログラミング言語 PHP で作成したアプリケーションを CGI として動作させるための PHP CGI に、遠隔からの任意のコード実行につながる脆弱性が報告されています。

 脆弱性は、PHP CGI が受け入れた文字列を Unicode から ASCII に変換する処理に存在します。脆弱性が存在する PHP CGI では、一部の文字列を適切にエスケープ処理をせずにそのまま php.exe または php-cgi.exe に渡してしまいます。よって攻撃者は、特殊な文字列を混入したペイロードを PHP で作成されたアプリケーションに送信すれば、Web サーバに対して任意の PHP コードの実行を強制できます。

◆対策
 PHP のバージョンを、サポートが継続されているバージョンのうち、脆弱性の影響を受けないものにアップグレードしてください。また、「◆エクスプロイト」に記載の内容に設定変更してください。

◆関連情報
[1] Openwall
  http://www.openwall.com/lists/oss-security/2024/06/07/1
[2] Devcore
  https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability-en/
[3] National Vulnerability Database (NVD)
  https://nvd.nist.gov/vuln/detail/CVE-2024-4577
[4] CVE Mitre
  https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-4577

◆エクスプロイト
 以下の Web サイトにて、当該脆弱性を悪用して対象ホストに対して任意のコマンド実行の指示を試みるエクスプロイトコードが公開されています。

  GitHub - watchtowrlabs/CVE-2024-4577
  https://github.com/watchtowrlabs/CVE-2024-4577/blob/main/watchTowr-vs-php_cve-2024-4577.py

 脆弱性を悪用するペイロードが簡素であり curl や PowerShell コマンドである Invoke-RestMethod などにより 1 行の短いコマンドで再現が可能であるため、本記事ではペイロード部分のみを取り出して curl による検証結果を示します。

《株式会社ラック デジタルペンテスト部》

関連記事

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 永世名誉編集長 りく)

×