PHP Security Advisory: Vulnerability in PHP versions 4.2.0 and 4.2.1

この和訳は 藤本@アストラザスタジオ 様に頂きました。ありがとう御座います。

ご注意
藤本様に質問のメールなどを出すのはご遠慮ください。
和訳に関する質問やミスや改良案などございます方はwebstaffまでお願いします。
原文はhttp://www.php.net/release_4_2_2.phpになりますのでそちらをご参照下さい。
また、技術的な内容に関しましてはPHP-usersメーリングリストへお願いします。



PHP Security Advisory: Vulnerability in PHP versions 4.2.0 and 4.2.1

Issued on:  2002年7月22日
Software:  PHP versions 4.2.0 and 4.2.1
Platforms:  全て

PHP GroupはPHP 4.2.0と4.2.1に重大な脆弱性があることを突き止めました。 侵入者はウェブサーバの動作権限で任意のコードを実行することが出来ます。 この脆弱性によりウェブサーバは危険な状態となり、特定の条件下において 一定の権限を持ったアクセスを許容することになります。

[Description]

PHPにはHTTP POSTリクエストにより送信されたヘッダを適切に解析するコードが 含まれています。このコードは"multipart/formdata"リクエストの変数と ファイルの各部分を区別するために使用されています。この部分の入力チェックが 不完全であったために脆弱性が生まれました。

この脆弱性は当該ウェブサーバにHTTP POSTリクエストを送信することが できる全てのユーザに対して意味を成します。ローカル、リモートは勿論 ファイアーウォール越しのユーザでもHTTP POSTさえできれば特権的アクセス権限を 得ることが出来ます。

[Impact]

ローカル、リモートの両方のユーザがこの脆弱性を突くことができ、 ウェブサーバは危険な状態となります。また特定の条件下において一定の 権限を持ったアクセスを許容することになります。これまでのところ、 IA32プラットホームでは任意のコードを実行することは不可能だということが 判明していますが、それでもPHPや(そして多くの場合)ウェブサーバをクラッシュ させることが可能です。

[Solution]

PHP Groupは脆弱性を修正した新しいPHPのバージョン4.2.2をリリースしました。 この問題が影響するバージョン(4.2.0と4.2.1)を使用している全てのユーザは この最新のバージョンにアップグレードすることをお勧めします。 ダウンロードサイトは

です。ソースコード、Windowsバイナリ、4.2.0と4.2.1への ソースコードパッチをダウンロードすることが出来ます。

[Workaround(回避策)]

もし、問題となるPHPがインストールされているウェブサーバがHTTP POSTを 使用していないなら、POSTリクエストを拒否することが出来ます。

例えばApacheウェブサーバでは設定ファイル(httpd.conf)やトップレベルに 置かれた.htaccessファイルに

と書くことでアクセスを拒否することが出来ます。

ただ、上記の例と競合するような記述が既に無いかどうか という点に注意してください。

[Credits]

PHP Groupはこの脆弱性を発見してくれたStefan Esser of e-matters GmbH に感謝します。