PHP 5.1.2

PHP 5.1.2 が公開されました。
HTTP レスポンス分割攻撃(HTTP Response Splitting)への対処と mysqli のフォーマット文字列脆弱性の修正、エラー表示でクロスサイトスクリプティング問題が発生するというセキュリティ問題が修正されています。
基本的には、PHP スクリプトや設定で対処できるセキュリティ問題ですが、HTTP レスポンス分割攻撃についてはバージョンアップするだけでほぼ確実に対処されます。

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 も公開されました。
PHP 5.1.2 と同様に、セキュリティ問題への対処が行われています。
また、マルチバイト文字列関数(mbstring)のバグも修正されています(詳しくは最近の mbstring 関係のバグのまとめを参照してください)。

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 Security Advisory

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

  • PHP ext/mysqli Format String Vulnerability
    • 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
  • PHP ext/session HTTP Response Splitting Vulnerability
    • PHP 5.1.1 以下のバージョンでは、ユーザから送り返される HTTP ヘッダの Set-Cookie フィールドのセッション ID の正当性をチェックしていないため、細工したセッション ID を送信されると、HTTP ヘッダに任意のヘッダが挿入可能という問題があります。これにより、Web アプリケーションでセッションを使用している場合、HTTP レスポンス分割攻撃やクロスサイトスクリプティング(XSS)攻撃を受ける可能性があります。
    • 影響を受けるバージョン
    • 影響を受けないバージョン
      • PHP 4.x
      • PHP 5.1.2 以上
      • Hardening-Patch 適用済み PHP 5.x

また、Hardened-PHP Project から PHP 4.4.1, PHP 5.0.5, PHP 5.1.1, PHP 5.1.2 に対応した Hardening-Patch v0.4.8 が公開されています。

PostgreSQL 8.1.2

Windows 版の PostgreSQLDoS 攻撃が可能な問題と全てのプラットフォームでデータが消える可能性のあるバグが修正されているそうです。