米CERT/CCなどは米国時間7月22日,PHPのバージョン 4.2.0 と 4.2.1 にセキュリティ・ホールがあることを公表した。PHPとは,HTMLファイル内に記述するタイプのスクリプト言語およびその実行環境のこと。PHP 4.2.0/4.2.1 が稼働するWebサーバーに,ある特定のリクエストが送信されると,Webサーバーを停止させられたり,サーバー上で任意のコードを実行されたりする。対策はバージョン 4.2.2へのアップグレードやパッチの適用など。

 PHPは,データベースと連携するWebアプリケーションを容易に作成できるスクリプト言語およびその実行環境であり,現在数多くのWebサーバーで利用されている。特に,ApacheについてはPHPモジュールが用意されているために,「Apache+PHP」の組み合わせで稼働しているWebサーバーは非常に多い。

 今回 PHP 4.2.0/4.2.1 において,Webサーバーへアップロードされたデータを処理する部分に不具合が見つかった。そのため,ある細工が施されたPOSTリクエストをPHP(Webサーバー)へ送信されると,そのリクエストを適切に処理できず,PHPあるいはWebサーバーのプロセスがクラッシュしてしまう。さらに,サーバー上で任意のコードを実行される恐れもある。ただし,x86(IA32)プラットフォームでは,コードを実行される恐れはないという。

 HTTPのPOSTリクエストを使用するため,リモートから容易に攻撃できる。公開用Webサーバーの場合には,ファイアウオールなどで防ぐことはできない。また,PHPの設定を特に変更していなくても影響を受ける。

 対策は,最新版のバージョン 4.2.2へアップグレードするか,パッチを適用すること。バージョン 4.2.2 やパッチは,The PHP Group のサイトで公開されている。なお,サーバーの負荷を分散させるために,ミラー・サイトからダウンロードしたい。

 すぐにアップグレードできない場合は,Webサーバーの設定を変更して,POSTリクエストを拒否する。例えば Apacheの場合には,設定ファイル「.htaccess」を変更する(具体的な方法は,CERT/CCの情報などを参照してほしい)。もちろん,PHPのサービスを停止することでも回避できる。

 なお,今回のセキュリティ・ホールの影響を受けるのは,バージョン 4.2.0 および 4.2.1 であるが,バージョン 3.0.10 から 3.0.18,および 4.0.1 から 4.1.1 までにもセキュリティ・ホールが見つかっているので注意が必要である(関連記事)。いずれのセキュリティ・ホールも,発見者は 独e-mattersのStefan Esser 氏である。

 非常に深刻なセキュリティ・ホールである。Webサーバー管理者は早急に対応する必要がある。

◎参考資料
CERT Advisory CA-2002-21 Vulnerability in PHP(米CERT/CC)
PHP Security Advisory: Vulnerability in PHP versions 4.2.0 and 4.2.1(The PHP Group)
Latest version of PHP(The PHP Group)
PHP remote vulnerability(独e-matters)

(勝村 幸博=IT Pro)