PHP

新しい PHP for Windows のリモートコード実行 (RCE) 脆弱性が公開され、バージョン 5.x 以降のすべてのリリースに影響を与え、世界中の膨大な数のサーバーに影響を与える可能性があります。

PHP は、ウェブ開発用に設計されたオープンソースのスクリプト言語であり、Windows と Linux の両サーバーで広く使用されています。

CVE-2024-4577として追跡されている新しいRCEの欠陥は、2024年5月7日にDevcoreの主席セキュリティ研究員Orange Tsaiによって発見され、PHP開発者に報告されました。

PHPプロジェクトのメンテナは昨日、この脆弱性に対処するパッチをリリースした。

しかし、このような大規模な展開を行っているプロジェクトでセキュリティ更新プログラムを適用することは複雑であり、かなりの数のシステムが長期間にわたって攻撃に対して脆弱な状態に置かれる可能性があります。

残念ながら、多くのデバイスに影響を与える重大な脆弱性が公表されると、脅威行為者や研究者は直ちに脆弱なシステムを見つけようとし始める。

CVE-2024-4577がそうであり、Shadowserver Foundationはすでに複数のIPアドレスが脆弱なサーバーをスキャンしていることを検知している。

Tweet

CVE-2024-4577の欠陥

CVE-2024-4577 の欠陥は、PHP を CGI モードで使用する際の文字エンコーディング変換、 特に Windows での ‘Best-Fit’ 機能の処理における見落としが原因です。

PHPを実装している間、チームはWindowsオペレーティングシステム内のエンコーディング変換のBest-Fit機能に気づきませんでした。

「この見落としは、認証されていない攻撃者が特定の文字シーケンスによってCVE-2012-1823の以前の保護をバイパスすることを可能にします。引数インジェクション攻撃により、リモートのPHPサーバー上で任意のコードを実行される可能性があります。”

この欠陥は、PHPチームが過去にCVE-2012-1823に対して実装していた防御を回避するもので、この欠陥はその修復から数年後にマルウェア攻撃に悪用された。

アナリストは、PHPがCGIモードに設定されていなくても、PHPの実行ファイル(php.exeやphp-cgi.exeなど)がウェブサーバーからアクセス可能なディレクトリにある限り、CVE-2024-4577を悪用できる可能性があると説明している。

これはXAMPP for Windowsのデフォルト設定であるため、DEVCOREはWindowsにインストールされたすべてのXAMPPが脆弱である可能性が高いと警告しています。

この問題は、繁体字中国語、簡体字中国語、日本語など、このエンコーディング変換の欠陥の影響を受けやすい特定の場所を使用した場合に悪化します。

Devcoreによると、CVE-2024-4577の脆弱性はWindows版PHPの全バージョンに影響するとのことなので、PHP 8.0 (End of Life)、PHP 7.x(EoL)、PHP 5.x(EoL)を使用している場合は、新しいバージョンにアップグレードするか、以下で説明する緩和策を使用する必要があります。

対処法

サポートされているバージョンの PHP を使用している場合は、 パッチを組み込んだバージョンにアップグレードしてください:PHP 8.3.8、PHP 8.2.20、PHP 8.1.29 です。

すぐにアップグレードできないシステムや EoL バージョンを使用している場合は、次のような mod_rewrite ルールを適用して攻撃をブロックすることを推奨します:

RewriteEngine On RewriteCond %{QUERY_STRING} RewriteEngine On RewriteCond %{QUERY_STRING^%ad [NC] RewriteRule .- F,L

XAMPPを使用していて、PHP CGI機能が必要ない場合は、Apache設定ファイル(通常は’C:/xampp/apache/conf/extra/httpd-xampp.conf’)で’ScriptAlias’ディレクティブを見つけてコメントアウトしてください。

管理者は、PHP-CGI を使用しているかどうかを phpinfo() 関数を使用して確認することができます

DEVCOREは、システム管理者がCGIからFastCGI、PHP-FPM、Mod-PHPのような より安全な代替手段への移行を検討することも推奨しています。