2013年6月6日にPHP5.5 RC3がリリースされた。RC2と比べて脆弱性を含むいくつかの不具合が修正されたそうだ。また、同日に、PHP5.4.16とPHP5.3.26もリリースされている。こちらの2バージョンでも、PHP5.5 RC3で修正されたものと同じ脆弱性(CVE-2013-2110)が修正されたようだ。PHP5.3のメンテナンスは、PHP5.5の正式版がリリースされてから1年で打ち切られる。
Categories » ‘PHP5.3’
PHP5.4.3とPHP5.3.13がリリース
5月 10th, 2012 by adminPHP5.4.2と5.3.12がリリースされたのが5月6日。そしてそのわずか2日後の5月8日にPHP5.4.3とPHP5.3.13がリリースされた。
修正されたのは以下の2点
・apache_request_headers()のバッファーオーバーフロー問題(5.4系のみで発生)
・CGIで動作させている場合にソースコードが公開されてしまう脆弱性(CVE-2012-2311)の修正の仕上げ
5.4系を使っていて、apache_request_headers()を実行する可能性がある場合や、CVE-2012-2311の影響を受けている場合は、速やかにアップデートしましょう。
CVE-2011-4885:ハッシュ衝突を悪用できる脆弱性
2月 5th, 2012 by adminPHP5.3.9では、脆弱性CVE-2011-4885が修正された。この脆弱性を悪用すると、サーバに過度の負荷を掛け、サービスを提供できない状態にできます。この不具合はPHP5.0系、PHP5.1系、PHP5.2系にも含まれていますが、PHP5.3系以外の修正版は提供されていません。
セキュリティーホールの概要
GETやPOSTで渡された変数はハッシュ構造に格納される。変数名に細工を加えることでハッシュの衝突が生じる。全ての変数のハッシュが衝突した場合、N個の変数の格納には、O(n2)の時間がかかるため、CPUに大きな負荷が発生する。
セキュリティーホールの修正
設定項目にmax_input_vars(デフォルト値1000)が追加された。計算量はO(n2)なので、1000個ぐらいの変数が衝突しても、現代のサーバなら問題ない。
バージョンアップせずに対応する方法
PHP5.3系を使っていれば、PHP5.3.10へのアップデートには大きなリスクはないが(とはいうものの、動作検証は必要)、PHP5.2系以前から、PHP5.3系への移行は一大事。DeprecatedやNoticeが大量に発生するだけならまだ良いが、関数名の衝突などが発生すると、アプリケーションのソースコードに手を加えざるを得ない。post_max_sizeに小さめの値(100kBなど)を設定すれば攻撃に対するリスクは軽減できる、ファイルのアップロードができなくなるなど、新たな問題が発生する可能性がある。現実的な対策としては、php.iniのpost_max_sizeを小さく設定し、ファイルのアップロードなどが必要な部分だけ、.htaccessを使って、post_max_sizeを適切な値に書き換えるのがよさそう。この対処をしても、ファイルのアップロード部分を攻撃されるとCPU負荷は上がるが、何も対処せずに、自動攻撃ツールの餌食になるよりはマシ。
とは言うもののバージョンアップしましょう
上記の方法で、セキュリティーホールの穴を多少なりとも小さくできるが、設定変更や、その後の動作検証など、煩わしい作業が発生してしまう。古いバージョンのPHP(に限らずあらゆるソフトウェア)には、既知の脆弱性が含まれいる。攻撃の餌食になる前に、計画的にアップデートできるよう、きっちりした運用体制を構築しておくことが重要。
【緊急パッチ】PHP 5.3.10 Released!
2月 4th, 2012 by adminPHP5.3.10がリリースされました。このバージョンでは、リモートからの任意のコードが実行できるというセキュリティーホールが修正されています。
Fixed arbitrary remote code execution vulnerability reported by Stefan Esser, CVE-2012-0830.
PHPの公式サイトは、全てのユーザに対して、PHP5.3.10へのアップデートが強く推奨していますが、このセキュリティーホール自体はPHP5.3.9へのアップデートで発生したそうなので、PHP5.3.8以前であれば慌てて対応する必要はなさそうです。
PHP 5.3.9 Released!
1月 17th, 2012 by adminPHP 5.3.8
9月 2nd, 2011 by adminPHP5.3.8がリリースされた。PHP5.3.7の、crypt関数でエンコード方式にMD5を選択した際に引数にかかわらずsaltをそのまま返してしまうとい不具合が修正されているそうだ。Amazon EC2で運用しているサーバをアップデートしておこうと思う。
The PHP development team would like to announce the immediate availability of PHP 5.3.8. This release fixes two issues introduced in the PHP 5.3.7 release:
Fixed bug #55439 (crypt() returns only the salt for MD5)
Reverted a change in timeout handling restoring PHP 5.3.6 behavior, which caused mysqlnd SSL connections to hang (Bug #55283).
All PHP users should note that the PHP 5.2 series is NOT supported anymore. All users are strongly encouraged to upgrade to PHP 5.3.8.
PHP5.3.6リリース
3月 26th, 2011 by admin2011/03/17に、PHP5.3.6がリリースされました。バグフィックスとセキュリティー向上が主な修正になっていますが、ライブラリ類のバージョンも上がっているようです。PHP5.3.5をリリースしたときは、5.2系も同時にリリースされたのですが、今回は5.3系のみのアップデートとなりました。今後は、よほど致命的なセキュリティーホールでも見つからない限り、5.2系のアップデートはなさそうです。
今回のリリースから、Windows向けのバイナリは、VC9++でコンパイルしたもののみが公開されているようです。
PHP 5.3.5 / 5.2.17 リリース
1月 9th, 2011 by adminPHP 5.3.5 and 5.2.17 Released!
これらのリリースは「致命的な問題」を解決しています。 「x87 FPU registers」を使っているシステムで、文字列をdouble型に変換する際にPHPのインタープリタをハングアップさせる可能性がありました。この問題は、システムが32bitか64bitかは関係なく、32bit版のPHPを利用している場合に発生します。すべてのPHPユーザに対して、すぐにアップデートすることを強く推奨します。
64bit版のOSを使っているサーバは多いですが、その場合でもPHPは32bit版を使っていることも多いのではないでしょうか?PHPの公式発表に従えば、すぐにバージョンアップすべきなのですが、リリースして間もないバージョンは未知の不具合が潜んでいることもあるので、直ちにアップデートすべきかどうかは悩みどころです。