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 をご覧ください。