JeffreyFrancesco.org 公開日 タグ Tag Permalink 現在地 Facebook page Twitter RSS feed

以下の内容は 2012年5月7日に緊急でアップしたものです。現在は SuiteX 側で同様の対策が実施されておりますのでユーザ側で対策する必要はありません。追記 2に示したリンク先をご確認下さい。

朝起きたら徳丸浩の日記CGI版PHPにリモートからスクリプト実行を許す脆弱性(CVE-2012-1823)という記事がアップされておりました。

CGI環境でPHPを動作させているサイトには、リモートからスクリプト実行を許してしまう脆弱性があります。php.netから提供されている修正リリース(PHP 5.3.12 / PHP 5.4.2)は不完全なため、該当するサイトは至急回避策を導入することを推奨します。

これを読んで「そういえば WebARENA SuiteX って PHP 5.3 を使おうとすると CGI モードでの起動になるんだったよなあ」というのを思い出しまして、簡単に実験してみたのですがやっぱり影響を受けるようです。

例えば思い付くのは WordPress のバージョン 3.2 以上を使っている場合など、もろに影響が出ますね。放置したままにしておくと http://example.com/wp/wp-config.php?-s のような URL にアクセスされるとソースコードが丸見えになりますので、つまりデータベースにアクセスするためのパスワードもバレバレになってしまいます。管理画面のログインパスワードも同じのを使ってるなんて場合はユーザ名さえ推測出来ればあとはもう…(まあ今どきそんな方はいないとは思うんですが)

もちろん、それ以外にも外部から任意のスクリプトが実行可能になるなどの影響がありますので、心当たりのある方は早急に対策を施された方がよいかと思います。方法は徳丸さんの記事内に解説がありますが、以下に SuiteX の環境に合わせた形で具体的なコード例を示しておきます。

まず、次のような記述をしたファイル(ファイル名はなんでも構いません)をローカルで作成し、サーバの /cgi-bin/ ディレクトリあたりにアップロードし、パーミッションを700にして実行権限を与えます。これがラッパーになります。

#!/bin/sh
exec /usr/local/php53/bin/php53

そして、PHP 5.3 を有効にしている場合は必ずどこかのディレクトリに以下の記述を入れた .htaccess ファイルを作成しているはずなので、そちらを開いて下さい(どこにも作成してない場合 PHP のバージョンは 5.1.6 で CGI モードではなく SSI モードで動作していますから、別に今回の対策をする必要はないはず)。

AddHandler application/x-httpd-php53 .php

開いたら、その直下の行あたりに次の記述を加えて保存(もしくはローカル環境で編集してアップロード)します。

Action application/x-httpd-php53 /cgi-bin/[php-wrapper-filename]

[php-wrapper-filename] の部分は先にアップロードしたラッパーのファイル名に変更して下さい(当然ですが cgi-bin ディレクトリ以外にアップロードした場合はその前のパス部分も変更して下さい)。

以上で完了となります。SuiteX サーバの PHP 5.3 が問題ないものにアップデートされるまではこれで凌ぎましょう。

追記

  1. PHP 5.3.12 and 5.4.2 and the CGI flaw (CVE-2012-1823)

    PHP 開発チームからは次のような mod_rewrite の書き換えルールによる対策が例示されています。アクセス禁止にするだけですが、こっちの方がいいのかな。

    RewriteCond %{QUERY_STRING} ^[^=]*$
    RewriteCond %{QUERY_STRING} %2d|\- [NC]
    RewriteRule .? - [F,L]
    
  2. 「PHP 5.4.2」におけるCGI関連のバグ修正は不完全、5月8日に再リリースへ - SourceForge.JP Magazine : オープンソースの話題満載

    明日には脆弱性を修正されたバージョンがリリースされる予定だそうです。

ちなみに SuiteX からはこの件に対するリリースはまだ何もないんですが、いつアップデートされるんでしょうね。

追記 2

2012年5月10日付で SuiteX 側で対策を行なったとのリリースがありましたので、現在はユーザ側で(上記の手順にて)対策を行なう必要はありません。既にご自身で追加された方も .htaccess ファイルの記述およびラッパー CGI ファイルは削除しておいて下さい。