[2011 年 8 月 18 日]
PHP 开发团队宣布立即发布 PHP 5.3.7。此版本侧重于改进 PHP 5.3.x 分支的稳定性,其中包含 90 多个错误修复,其中一些与安全相关。
PHP 5.3.7 中的安全增强和修复
- 将 crypt_blowfish 更新到 1.2 版。(CVE-2011-2483) (更多信息)
- 修复了 error_log() 中的崩溃问题。由 Mateusz Kocielski 报告
- 修复了 crypt() 中的 overlog salt 缓冲区溢出。
- 修复了错误 #54939 (RFC1867 文件上传文件名中的文件路径注入漏洞)。由 Krzysztof Kotowicz 报告。(CVE-2011-2202)
- 修复了 socket_connect() 中的堆栈缓冲区溢出。(CVE-2011-1938)
- 修复了错误 #54238 (substr_replace() 中的 use-after-free)。(CVE-2011-1148)
PHP 5.3.7 中的主要增强功能包括
- 将捆绑的 Sqlite3 升级到 3.7.7.1 版。
- 将捆绑的 PCRE 升级到 8.12 版。
- 修复了错误 #54910 (使用未知函数名称调用 call_user_func 时崩溃)
- 修复了错误 #54585 (track_errors 导致段错误)
- 修复了错误 #54262 (在非数组中为维度赋值时崩溃)
- 修复了错误处理 dtor 中的崩溃问题
- 修复了错误 #55339 (allow_call_time_pass_reference = Off 时段错误)
- 修复了错误 #54935 php_win_err 可能导致崩溃
- 修复了错误 #54332 (zend_mm_check_ptr 中的崩溃 // 堆损坏)
- 修复了错误 #54305 (gc_remove_zval_from_buffer 中的崩溃)
- 修复了错误 #54580 (当通过 php_admin_value 设置 browscap ini 指令时,get_browser() 会出现段错误)
- 修复了错误 #54529 (SAPI 在 apache_config.c:197 处崩溃)
- 修复了错误 #54283 (new DatePeriod(NULL) 导致崩溃)。
- 修复了错误 #54269 (短异常消息缓冲区导致崩溃)
- 修复了错误 #54221 (mysqli::get_warnings 在使用多查询时段错误)
- 修复了错误 #54395 (Phar::mount() 在使用错误参数调用时崩溃)
- 修复了错误 #54384 (双迭代器、GlobIterator、SplFileObject 和 SplTempFileObject 在用户空间类未调用父构造函数时崩溃)
- 修复了错误 #54292 (错误参数导致 SplFileObject::__construct() 崩溃)
- 修复了错误 #54291 (在以 \0 开头的目录名称上迭代 DirectoryIterator 时崩溃)
- 修复了错误 #54281 (未初始化的 RecursiveIteratorIterator 崩溃)
- 修复了错误 #54623 (在关闭套接字副本后写入持久套接字时段错误)
- 修复了错误 #54681 (addGlob() 在无效标志上崩溃)
- 80 多个其他错误修复。
Windows 用户:请注意,我们不再提供使用 Visual Studio C++ 6 创建的构建版本。使用此未维护的编译器,无法维护高质量且安全的 Windows PHP 构建版本。
对于 Apache SAPI (php5_apache2_2.dll),请确保您使用 Visual Studio C++ 9 版本的 Apache。我们建议使用 ApacheLounge 提供的 Apache 构建版本。对于任何其他 SAPI (CLI、通过 mod_fcgi 的 FastCGI、带有 IIS 或其他支持 FastCGI 的服务器的 FastCGI),所有内容都与之前一样。第三方扩展提供商必须重新构建其扩展,使其与我们现在提供的 Visual Studio C++9 构建版本兼容并可加载。
所有 PHP 用户应注意,PHP 5.2 系列不再受支持。强烈建议所有用户升级到 PHP 5.3.7。
有关 PHP 5.3.7 中所有更改的完整列表,请参阅 ChangeLog。如需下载源代码,请访问我们的 下载页面,可在 windows.php.net/download/ 上找到 Windows 二进制文件。