【脆弱性】WindowsのPHPで緊急性の高い脆弱性(CVE-2024-4577)によるサーバ攻撃
会社から脆弱性(CVE-2024-4577)について確認するように依頼が来たのでブログに内容をまとめてみました。緊急性の高い脆弱性なので確認してみて下さい。
PHPの脆弱性(CVE-2024-4577)について
CVE-2024-4577は、PHPのCGIモードにおけるCGI引数インジェクションです。この脆弱性を利用して攻撃者は引数インジェクション攻撃により、リモートのPHPサーバに対して特定のパラメータを操作して不正なコマンドを実行する可能性があります。影響を受けるのはWindows OSにインストールされているPHP 7.4以前およびPHP 8.0、8.1、8.2、8.3までのバージョンです。
最新のPHPにバージョンアップしていないPHPは全て対象と考えられます。
この脆弱性は、リクエストのクエリ文字列に特定のUnicode文字(ソフトハイフン、0xAD)を含めることで、WEBサーバがその文字を適切にエスケープせず、PHPがそれを通常のハイフン(0x2D)として解釈するというものでした。この結果、攻撃者はPHPプロセスに追加のコマンドライン引数を渡すことができ、リモートコード実行(RCE)を引き起こす可能性があります。
🛑 Attention Developers and SysAdmins!
— The Hacker News (@TheHackersNews) June 8, 2024
A new PHP flaw (CVE-2024-4577) affects all of its Windows versions, enabling remote code execution via CGI argument injection.
Learn more: https://t.co/IuR8qXUrKG
Patch is available—update to PHP 8.3.8, 8.2.20, or 8.1.29 immediately.
対応策について
最新のPHPにバージョンアップする
最新のセキュリティパッチが適用されたPHPのバージョンにアップグレードします。PHPの公式ウェブサイトから最新のバージョンをダウンロードして、バージョンアップを行ってください。
https://windows.php.net/download/
最新のPHPにバージョンアップできない場合
WEBサーバの設定変更
PHPを今すぐバージョンアップできない場合、WEBサーバの設定を変更して攻撃をブロックする mod_rewrite ルールを追加してください。
Apache は実際のハイフン (0x2D) をエスケープしますが、「ソフトハイフン」である 0xAD はエスケープされないので(ソフトハイフン、 0xAD )のアクセスをブロックして下さい。
- Apache
.htaccess
ファイル
RewriteEngine On
RewriteCond %{QUERY_STRING} ^%ad [NC]
RewriteRule .? - [F,L]
まとめ
CVE-2024-4577は、Windows OSにインストールされているPHPを対象に引数インジェクション攻撃を行うので、できる限り速やかにPHPを最新バージョンにしましょう。今回の脆弱性は他のOSについては影響なさそうですが、セキュリティを担保するため、PHPのバージョンは新しいものがオススメです!
参考文献:
https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability-en
https://labs.watchtowr.com/no-way-php-strikes-again-cve-2024-4577/?123