CakePHPコアチームはCakePHP 2.6.6と3.0.6が入手可能になったことをお知らせいたします。これらは重要なセキュリティフィックスを含むメンテナンスリリースです。
セキュリティフィックス
今週のはじめに、巧妙に作成されたリクエストからサービス不能に陥る攻撃を作成できてしまうというRequestHandlerComponent の脆弱性についてお知らせしました。RequestHandlerComponent は Xml::build() を使ってローカルファイルの読み込みを許してしまいます。
RequestHandlerComponent を使用するすべてのアプリケーションでアップグレードを行なうか、XMLペイロードの構文解析を使用しないことをおすすめします。XMLペイロードの構文解析の使用を停止するには、以下のように行います。
// コントローラのbeforeFilterで $this->RequestHandler->addInputType('xml', function() { return []; });
上記のコードにより、組込まれているXMLパーサを何も処理しないファンクションに置き換えることができます。セキュリティ問題の報告(日本語)から知らせてくれた Takeshi Terada さんに感謝します。
訳注:原文はこちら。
2.6.6のその他の修正
- FormHelper::radio() は、マルチバイトの値を使ったラジオボランでID属性を正しく生成するようになった
- Inflector::humanize() と Inflector::underscore() はUTF8の文字列を正しく扱うようになった
3.0.6のその他の修正
- FormHelper::radio() は、マルチバイトの値を使ったラジオボランでID属性を正しく生成するようになった
- Inflector::humanize() と Inflector::underscore() はUTF8の文字列を正しく扱うようになった
- FormHelper::postLink() のURLを二重エンコードする問題を修正
- PaginatorHelper::numbers() で、urlオプションをサポート
- 例外のログで、Error.trace が優先されるようになった
- 3.0.3で導入されたエンティティアクセサは削除された。問題を多く引き起こし、パフォーマンスを素晴らしく改善するようなものではなかったため。
- EntityTrait::getOriginal() と EntityTrait::extractOriginal() は以前はnullを返していたが値を返すように修正
- 関連のクエリビルダで、カラのクエリを使用すると無効なSQLが生成される問題を修正
バグレポートやプルリクエストによりこのリリースに関わってくださったコミュニティの皆さんすべてに感謝しています。
githubよりパッケージリリースのダウンロード