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に重大な脆弱性があることを突き止めました。 侵入者はウェブサーバの動作権限で任意のコードを実行することが出来ます。 この脆弱性によりウェブサーバは危険な状態となり、特定の条件下において 一定の権限を持ったアクセスを許容することになります。
PHPにはHTTP POSTリクエストにより送信されたヘッダを適切に解析するコードが 含まれています。このコードは"multipart/formdata"リクエストの変数と ファイルの各部分を区別するために使用されています。この部分の入力チェックが 不完全であったために脆弱性が生まれました。
この脆弱性は当該ウェブサーバにHTTP POSTリクエストを送信することが できる全てのユーザに対して意味を成します。ローカル、リモートは勿論 ファイアーウォール越しのユーザでもHTTP POSTさえできれば特権的アクセス権限を 得ることが出来ます。
ローカル、リモートの両方のユーザがこの脆弱性を突くことができ、 ウェブサーバは危険な状態となります。また特定の条件下において一定の 権限を持ったアクセスを許容することになります。これまでのところ、 IA32プラットホームでは任意のコードを実行することは不可能だということが 判明していますが、それでもPHPや(そして多くの場合)ウェブサーバをクラッシュ させることが可能です。
PHP Groupは脆弱性を修正した新しいPHPのバージョン4.2.2をリリースしました。 この問題が影響するバージョン(4.2.0と4.2.1)を使用している全てのユーザは この最新のバージョンにアップグレードすることをお勧めします。 ダウンロードサイトは
です。ソースコード、Windowsバイナリ、4.2.0と4.2.1への ソースコードパッチをダウンロードすることが出来ます。
もし、問題となるPHPがインストールされているウェブサーバがHTTP POSTを 使用していないなら、POSTリクエストを拒否することが出来ます。
例えばApacheウェブサーバでは設定ファイル(httpd.conf)やトップレベルに 置かれた.htaccessファイルに
<Limit POST>
Order deny,allow
Deny from all
</Limit>
ただ、上記の例と競合するような記述が既に無いかどうか という点に注意してください。
PHP Groupはこの脆弱性を発見してくれたStefan Esser of e-matters GmbH に感謝します。