[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(为非数组中的维度赋值时崩溃)。
- 修复了错误处理程序析构函数内部的崩溃问题。
- 修复了错误#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中所有更改的完整列表,请参阅变更日志。源代码下载请访问我们的下载页面,Windows二进制文件可以在windows.php.net/download/找到。