Hardened-PHP Projectは10月31日(現地時間),オープンソースWebアプリケーション開発言語PHPの深刻なセキュリティ・ホールを警告した。リモートからPHPスクリプトを実行される「今まで見つかった中でも最悪のセキュリティ・ホール。全てのPHPユーザは今すぐ対処を行う必要がある」(日本PHPユーザー会 大垣靖男氏)。PHP4の4.4.0以前のバージョン,PHP5の5.0.5以前のバージョンが影響を受ける。対策はパッチを適用することなど。

 このセキュリティ・ホールは,ファイル・アップロードでグローバル・シンボル・テーブル$GLOBALSが書き換えられることにより,リモートからPHPのスクリプトを実行される可能性があるというもの。PHPの標準ライブラリであるPEARなどがこのセキュリティ・ホールにより攻撃される可能性がある。そのほか「影響を付けるシステムやアプリケーションは数え切れないほど多い」(Hardened-PHP Project)。PHP 4.3.10以下は$_GET,$_POST,$_COOKIEのセキュリティ・ホールが存在しておりさらに危険という。

 対策は,PHPの場合4.4.1以上にアップグレードすること。PHP5の場合「日本時間11月2日時点ではPHP5用のパッチまたは対策済みリリースは公開されていない」(大垣氏)。大垣氏がPHP 5.0.4またはPHP 5.0.5用のセキュリティ・パッチを公開している。

 ただし,PHP4.4.xではソースコード埋め込み定数参照の仕様が変更されているため,プログラムが動作しなくなる場合がある。大垣氏がPHP 4.3.11用のセキュリティ・パッチを公開している。

◎関連資料
Advisory: PHP File-Upload $GLOBALS Overwrite Vulnerability(Hardened-PHP Project)
$GLOBALS Overwrite and it's Consequences(Hardened-PHP Project)
PHP 4 ChangeLog Version 4.4.1(The PHP Group)
PHPの現行リリースに重大な脆弱性(PHP4.4.0以下、PHP5.0.5以下)(日本PHPユーザー会 大垣靖男氏)
PHP/patch/$GLOBAL保護パッチ(日本PHPユーザー会 大垣靖男氏)

【11月9日追記】
このセキュリティ・ホールは,PHPの設定がregister_globals=onの場合に影響を受ける。register_globals=offであれば影響は受けない。PHP 4.2.0以降では,デフォルト設定ではregister_globals=offとなっている。

PHPの現行リリースに重大な脆弱性(PHP4.4.0以下、PHP5.0.5以下) - まとめ(日本PHPユーザー会 大垣靖男氏)