個人的なメモと備忘録 2006年2月

HOME | LastUpdate: 2006-02-05

目次


2006.02.05(Sun)

また1ヶ月ほど更新が止まっていましたので、少し古い情報が多いです。

>>PHP 関連

*PHP 5.1.2 公開

PHP 5.1.2 (2006.01.12) が公開されています。PHP 5.1.1 から多くのバグ修正と機能追加が行われています。

HTTP レスポンス分割攻撃(HTTP Response Splitting)への対処と mysqli のフォーマット文字列脆弱性の修正、エラー表示でクロスサイトスクリプティング問題が発生するというセキュリティ問題が修正されています。

基本的には、PHP スクリプトや設定で対処できるセキュリティ問題ですが、HTTP レスポンス分割攻撃についてはバージョンアップするだけでほぼ確実に対処されます。

はてなの日記(2006.01.15)にも書いたのですが、PHP 5.1.2 Release Announcement を翻訳してみました。

PHP 開発チームは PHP 5.1.2 をリリースできることをうれしく思います。このリリースでは、細かい機能拡張と多くのバグ修正と3つのセキュリティ問題の修正が行われています。全ての PHP 5 を使用しているユーザはこのリリースにアップグレードすることを推奨します。

以下のセキュリティ問題が修正されました。

  • ext/session モジュールと header() 関数において HTTP レスポンス分割攻撃が可能な問題が修正されました。 header() 関数は一度の呼び出しで複数のレスポンスヘッダの送信をしないように変更しました。
  • ext/mysqli モジュールにおけるフォーマット文字列脆弱性の修正を行いました。
  • エラー表示機能で、エラーによってはクロスサイトスクリプティング問題が発生する可能性があった問題を修正しました。

主に、以下のような機能拡張があります。

  • コアモジュールとして、hash 拡張モジュールが追加され、デフォルトで有効になりました。 この拡張モジュールはサードパーティ製のライブラリに依存するものを除き、一般的なハッシュアルゴリズムのほとんどをサポートしています。
  • XMLWriter 拡張モジュールが追加され、デフォルトで有効になりました。
  • 新たな OCI8 拡張モジュールが追加されました。多くのバグ修正が行われています。
  • GD 拡張モジュールにおいて、PNG 圧縮がサポートされました。
  • C レベルでのコードカバレッジを有効にする --enable-gcov という configure オプションが追加されました。
  • SimpleXML 拡張モジュールに getNamespaces()getDocNamespaces() メソッドが追加されました。

このリリースでは 85 個以上のバグ修正が行われています。主なものは以下の通りです。

  • strtotime() 関数における多くのリグレッションバグの修正が行われています。
  • imap, pdo, gd, mysqli, mcrypt, soap 拡張モジュールで報告されたクラッシュ、メモリリーク、メモリ破壊バグの修正が行われています。
  • Apache2 SAPI において SSI と virtual() 関数を使用すると、発生する問題を修正しました。
  • iconv と sybase_ct 拡張モジュールでビルドに失敗する問題を修正しました。
  • Sun(rise|set) 関数が正しく機能していなかった問題を修正しました。
  • SQLite ライブラリが 2.8.17 と 3.2.8 にアップグレードされました。
  • Win32 バイナリにおいて、libxslt2-2.6.22 と libxslt-1.1.15 が同梱されるようになりました。

PHP 5.1.2 の完全な変更点の一覧は ChangeLog をご覧ください。

*PHP 4.4.2 公開

PHP 4.4.2 (2006.01.13) も公開されました。

PHP 5.1.2 と同様に、セキュリティ問題への対処が行われています。また、メール送信時に件名(subject)が文字化けするバグや mb_send_mail() の第5引数が設定できない問題、mb_send_mail() の To: に改行コードが含まれていた場合、メールヘッダを挿入されてしまうセキュリティ問題など、多くのバグが修正されています。PHP 4.4.1 以下を使用している場合は、バージョンアップした方が良いと思います。

PHP 4.4.2 Release Announcement も訳してみました。

PHP 開発チームは PHP 4.4.2 を緊急リリースします。

これはバグ修正リリースで、セキュリティ問題の修正も行われています。このリリースの主な修正点は以下の通りです。

  • それぞれのヘッダを一行に制限することで、ヘッダ・インジェクションを防止するようにしました。
  • エラー報告機能にクロスサイトスクリプティングが起きる可能性があった問題を修正しました。
  • cURL 拡張モジュールで行われていなかった safe_mode/open_basedir の確認を行うように修正しました。
  • Linux 以外のシステムで Apache 2 のサブリクエストの処理においてリグレッション(退行)が発生していた問題を修正しました。
  • key()current() 関数がリファレンスに関連する処理でリグレッションを起こしていた問題を修正しました。

このリリースでは他にも 30 個のバグが修正されています。

PHP 4.4.2 の完全な変更点の一覧は ChangeLog をご覧ください。

*セキュリティ関係

Hardened-PHP Project からセキュリティアドバイザリが2件出ています。

  • Advisory 02/2006: PHP ext/mysqli Format String Vulnerability (Hardened-PHP Project)

    PHP 5 から導入された mysqli では、例外を使用したエラー報告機能がありますが、エラーで例外が発生した際に、そのエラーメッセージはフォーマット文字列を使用しているため、悪意のある MySQL サーバや不正な SQL クエリ(SQL インジェクションなど)によるフォーマット文字列脆弱性があります。これにより、リモートからコードを実行される可能性があるそうです。

    • 影響を受けるバージョン
      • PHP 5.1.1 以下の PHP 5.1.x
    • 影響を受けないバージョン
      • PHP 4.x
      • PHP 5.0.x
      • Hardening-Patch 適用済み PHP 5.1.x
  • Advisory 01/2006: PHP ext/session HTTP Response Splitting Vulnerability (Hardened-PHP Project)

    PHP 5.1.1 以下のバージョンでは、ユーザから送り返される HTTP ヘッダの Set-Cookie フィールドのセッション ID の正当性をチェックしていないため、細工したセッション ID を送信されると、HTTP ヘッダに任意のヘッダが挿入可能という問題があります。これにより、Web アプリケーションでセッションを使用している場合、HTTP レスポンス分割攻撃やクロスサイトスクリプティング(XSS)攻撃を受ける可能性があります。

    • 影響を受けるバージョン
      • PHP 5.1.1 以下の PHP 5.x
    • 影響を受けないバージョン
      • PHP 4.x
      • PHP 5.1.2
      • Hardening-Patch 適用済み PHP 5.x
  • Hardening-Patch v0.4.8 (Hardened-PHP)

    PHP 4.4.1, PHP 5.0.5, PHP 5.1.1, PHP 5.1.2 に対応した PHP のセキュリティ強化 Patch 集。

  • PHP Multiple Vulnerabilities (Secunia)
  • PHP "mysql_connect" Buffer Overflow Vulnerability (Secunia)
*PHP5 Globals Vulnerability

PHP5 Globals Vulnerability (ush.it - a beautiful place) で、PHP 5.1.0 で修正されていたはずの register_globals = On の環境での $GLOBALS 変数上書き問題が、PHP 5.1.1 や PHP 5.1.2 で完全には修正されていないという問題が指摘されています。

例では、foo.php?GLOBALS[foobar]=HELLO のような呼び出しを行った場合、$foobarHELLO が代入されてしまうことが確認されています。

register_globals = Off にするか、どうしても register_globals = Off にできない場合は、以下のように、スーパーグローバル変数に GLOBALS が含まれている場合、エラーにするという回避方法が挙げられています。

// put this code before everything
if (isset($HTTP_POST_VARS['GLOBALS']) || isset($_POST['GLOBALS']) ||
    isset($HTTP_POST_FILES['GLOBALS']) || isset($_FILES['GLOBALS']) ||
    isset($HTTP_GET_VARS['GLOBALS']) || isset($_GET['GLOBALS']) ||
    isset($HTTP_COOKIE_VARS['GLOBALS']) || isset($_COOKIE['GLOBALS'])) {
 trigger_error('Is this a GLOBAL GPC hacking attemp?', E_USER_ERROR);
}
*その他
  • Minutes PHP Developers Meeting

    PHP6 に関する PHP 開発者の会議の議事録。結構前に公開されていましたが、今まで知りませんでした。

>>セキュリティ関係

*Mozilla Firefox

Moziila 1.5.0.1 が公開されました。Mozilla 1.5.0 で報告された多くのセキュリティ問題やバグが修正されています。多くのセキュリティ問題は Javascript に関連するものです。

*Apache

Apache

Apache 2.0.55 以下の Apache 2.0.x の mod_ssl に DoS 攻撃が可能な問題が見つかっています。Apache 2.0.56 で修正される予定になっています。

*OpenSSH

OpenSSH 4.2p1 以下のバージョンで、 scp コマンドを使用して(ローカルからローカルまたはリモートからリモートに)ファイルのコピーを実行する際に、対象のファイルがシェルのメタキャラクタを含んでいると問題が発生するようです。scp を実行した権限で攻撃者が指定したコマンドが実行される問題があります。

この問題を修正した OpenSSH 4.3 が公開されています。多くの Linux ベンダでセキュリティアップデートが行われています。

>>気になったニュース、ツールなど

▲ 目次へ戻る


更新履歴

2006.02.05

このページを作成。2006年2月5日分を追加。

▲ 目次へ戻る

LastUpdate: 2006-02-05 | HOME