Command Injection Vulnerability Discovered in PHP: CVE-2024-5585
2024/06/10 SecurityOnline — サーバ・サイド・スクリプト言語として広く使われている PHP の複数のバージョンに、深刻な脆弱性 CVE-2024-5585 (CVSS:7.7) が発見された。この脆弱性の悪用に成功した攻撃者は、セキュリティ設定が適切な場合でも、任意のコマンド実行が可能となる。
![](https://iototsecnews.jp/wp-content/uploads/2024/06/php-3.png?w=806)
この脆弱性は、以前に不完全な修正がされた RCE 脆弱性 CVE-2024-1874 (CVSS:9.4) に起因するものであり、そのバイパス手法が、セキュリティ研究者 Tianstcht により発見された。proc_open() 関数内のコマンド名の末尾にスペースを追加することで、攻撃者はセキュリティを回避し、Windows 上で任意のコマンドが実行可能となる。
この脆弱性は、proc_open() 関数を配列構文で使用する際の、コマンド引数の不十分な検証により発生する。Windows 上で bypass_shell オプションが有効化されている場合でも、攻撃者によるコマンド引数の操作が可能となり、コマンド・インジェクションへとつながる。
CVE-2024-5585 の悪用に成功した攻撃者は、サーバの完全な侵害を達成して任意のコードが実行可能となり、データ流出/不正アクセス/サービス運用妨害につながる恐れがある。
この脆弱性の PoC エクスプロイトは以下の通りだ:
- “echo hello” を test.bat として保存する。
- 以下のファイルを 1.php として保存する。”argv-filename” の最後にスペースがあることに注意:
<?php $descriptorspec = [STDIN, STDOUT, STDOUT]; $proc = proc_open(["test.bat ", "\"¬epad.exe"], $descriptorspec, $pipes, null, null, array("bypass_shell" => true)); proc_close($proc);
- PHP を実行して、”notepad.exe” がポップアップ表示されることを確認する。
CVE-2024-5585 は、以下の PHP バージョンに影響をおよぼす:
- 8.1.29 未満の 8.1.*
- 8.2.20 未満の 8.2.*
- 8.3.8 未満の 8.3.*
Web 上で PHP を使用している組織に対して、強く推奨されるのは、パッチが適用された最新版 (8.1.29/ 8.2.20/8.3.8) へと直ちにアップグレードすることだ。また、管理者にとって必要なことは、システム・ログ上で侵害の兆候の有無を確認し、適切な緩和策を実施することである。
いま、PHP では、CVE-2024-4577 が TellYouThePass ランサムウェアの標的にされ、とても心配な状況ですが、それとは別系統の、深刻な脆弱性 CVE-2024-5585 が FIX とのことです。関連する CVE-2024-1874 ですが、詳細については、2024/04/14 の「PHP の深刻な脆弱性 CVE-2024-1874/2757 などが FIX:ただちにパッチを!」を、ご参照ください。よろしければ、PHP で検索も、ご利用ください。
![](https://iototsecnews.jp/wp-content/uploads/2024/06/unnamed.png?w=512)
You must be logged in to post a comment.