安全发布 - CakePHP 2.1.5 & 2.2.1

CakePHP 2.1.5 和 2.2.1 现已发布。如果您正在使用 CakePHP 的 Xml 类,您应尽快升级。

安全问题最近由 Paweł Wyleciał 报告。在接受用户提供的 XML 时,可以使用外部实体读取任意文件。这对于接受 XML 数据作为 Web 服务一部分的应用程序尤其危险。一个可能的利用示例是

curl -X POST -H ‘Content-Type: application/xml’ locahost/posts -d ‘<!DOCTYPE cakephp [<!ENTITY payload SYSTEM “file:///etc/passwd” >]><Post><body>&payload;</body></Post>]’

处理完 XML 后,$this->request->data[‘Post’][‘body’] 将包含 /etc/passwd 的内容。这个问题已修复,并为 2.1 和 2.2 创建了打包版本。此问题不影响 1.3 或 1.2 版本系列。如果您无法升级,您应尽快应用 补丁。此问题已分配 CVE-2012-4399 和 OSVDB-84042。

2.2.1 中的其他修复

除了安全修复之外,2.2.1 还包含以下问题的修复

  • 修复了嵌套命名参数的 urlencode 丢失。
  • 修复了在 Windows 终端上输出 ANSI 代码。
  • 修复了 HtmlHelper::image() 在使用 fullBase 选项时包含基目录两次。
  • 控制台日志记录现在尊重 shell 的 quiet 标志。
  • TranslateBehavior 现在可以正确保存仅包含一些翻译字段的记录。
  • afterValidate() 在行为中可用。这是 2.2.0 中的遗漏。

查看 2.2.1 和 2.1.5 的完整变更日志。下载打包版本。

CakeFest 2012 即将到来,我们预计在最佳 PHP 会议期间会有精彩的演讲和研讨会。如果您还没有预订 门票,现在是时候了。

一如既往,感谢友好 的 CakePHP 社区为补丁、文档更改和新票证做出的贡献。没有您,就没有 CakePHP!