◆概要
PHP において multipart/form-data ヘッダをパースする main/rfc1867.c の
multipart_buffer_headers 関数には、細工された multipart/form-data リ
クエストを処理する際に CPU リソースを過度に消費してしまう脆弱性が存在
します。
攻撃者は本脆弱性を利用することで、遠隔から対象システムの CPU リソース
を過度に消費し、サービス運用妨害 (DoS) を行なうことが可能です。
◆分析者コメント
本脆弱性は PHP の処理系に発見された脆弱性で、問題となった箇所のソース
コードおよび修正パッチの内容を確認したところ、実行する処理が効率的な
実装になっていなかったために生じた問題でした。
緩和策は公開されておらず、該当ソフトウェアのアップデートが対策として
公開されています。
脆弱性の影響を受ける PHP が動作している場合、公開している PHP スクリ
プトの内容に関わらず攻撃の影響を受けるため、ソフトウェアアップデート
の速やかな実施を推奨します。
◆深刻度(CVSS v2)
5.0
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-4024
◆影響を受けるソフトウェア
PHP 5.4.41 未満
PHP 5.5.25 未満の 5.5.x
PHP 5.6.9 未満の 5.6.x
◆解説
PHP の multipart_buffer_headers 関数における multipart/form-data の
パース処理では、行頭が空欄でなくかつ : が存在しない行に対する処理と
して、新たに確保したメモリ領域にひとつ前の行の値と該当する行を結合
させた文字列を作成します。
この処理の対象となる行が多数存在すると、処理が進むごとに確保するメ
モリ領域のサイズおよびコピーする文字列の長さが増加するため、過度に
CPU リソースを消費してしまい、サービス拒否状態を起こしてしまいます。
◆対策
脆弱性が解消されているバージョンへの PHP アップデートの実施、
または手動でのパッチ適用により当該脆弱性を解消することが可能です。
◆関連情報
[1] The PHP Group
https://bugs.php.net/bug.php?id=69364
[2] CVE Mitre
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4024
[3] Apple 社
http://lists.apple.com/archives/security-announce/2015/Aug/msg00001.html
[4] Oracle 社
http://www.oracle.com/technetwork/topics/security/bulletinjul2015-2511963.html
[5] Turbolinux
http://www.turbolinux.co.jp/security/2015/TLSA-2015-15j.html
PHP において multipart/form-data ヘッダをパースする main/rfc1867.c の
multipart_buffer_headers 関数には、細工された multipart/form-data リ
クエストを処理する際に CPU リソースを過度に消費してしまう脆弱性が存在
します。
攻撃者は本脆弱性を利用することで、遠隔から対象システムの CPU リソース
を過度に消費し、サービス運用妨害 (DoS) を行なうことが可能です。
◆分析者コメント
本脆弱性は PHP の処理系に発見された脆弱性で、問題となった箇所のソース
コードおよび修正パッチの内容を確認したところ、実行する処理が効率的な
実装になっていなかったために生じた問題でした。
緩和策は公開されておらず、該当ソフトウェアのアップデートが対策として
公開されています。
脆弱性の影響を受ける PHP が動作している場合、公開している PHP スクリ
プトの内容に関わらず攻撃の影響を受けるため、ソフトウェアアップデート
の速やかな実施を推奨します。
◆深刻度(CVSS v2)
5.0
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-4024
◆影響を受けるソフトウェア
PHP 5.4.41 未満
PHP 5.5.25 未満の 5.5.x
PHP 5.6.9 未満の 5.6.x
◆解説
PHP の multipart_buffer_headers 関数における multipart/form-data の
パース処理では、行頭が空欄でなくかつ : が存在しない行に対する処理と
して、新たに確保したメモリ領域にひとつ前の行の値と該当する行を結合
させた文字列を作成します。
この処理の対象となる行が多数存在すると、処理が進むごとに確保するメ
モリ領域のサイズおよびコピーする文字列の長さが増加するため、過度に
CPU リソースを消費してしまい、サービス拒否状態を起こしてしまいます。
◆対策
脆弱性が解消されているバージョンへの PHP アップデートの実施、
または手動でのパッチ適用により当該脆弱性を解消することが可能です。
◆関連情報
[1] The PHP Group
https://bugs.php.net/bug.php?id=69364
[2] CVE Mitre
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4024
[3] Apple 社
http://lists.apple.com/archives/security-announce/2015/Aug/msg00001.html
[4] Oracle 社
http://www.oracle.com/technetwork/topics/security/bulletinjul2015-2511963.html
[5] Turbolinux
http://www.turbolinux.co.jp/security/2015/TLSA-2015-15j.html