PHP 开发团队已正式发布 PHP 8.5.1 版本。这是一个重要的安全更新版本,强烈建议所有正在使用 PHP 8.5 的用户尽快升级。
本次更新修复了内核、标准库及多个扩展中的一系列问题,其中包括多个安全漏洞(CVE)。以下是主要变更日志:
内核与库变更日志
-
Core(内核):
- 将所有 boost.context 文件与 1.86.0 版本同步。
- 修复了错误 GH-20435(SensitiveParameter 不适用于将命名参数传递给可变参数)。
- 修复了错误 GH-20546(macOS 上的 preserve_none 属性配置检查问题)。
- 修复了错误 GH-20286(在用户空间 stream_close() 期间 use-after-destroy)。
-
Bz2:
-
DOM:
- 修复注册 XPath 回调时遇到特殊情况时的内存泄漏问题。
- 修复了错误 GH-20395(querySelector 和 querySelectorAll 要求 $selectors 中的元素为小写)。
- 修复 C14NFile() 中缺少 NUL 字节检查的问题。
-
Fibers:
- 修复了错误 GH-20483(当 fiber.stack_size INI 值较小时,ASAN 堆栈溢出)。
-
Intl:
- 修复了错误 GH-20426(Spoofchecker::setRestrictionLevel() 错误消息提示缺少常量)。
-
Lexbor:
- 修复了错误 GH-20501(调用 withPath() 或 withQuery() 后 \Uri\WhatWg\Url 丢失 host)。
- 修复了错误 GH-20502(由于 Lexbor 内存损坏,解析格式错误的 URL 时,\Uri\WhatWg\Url 崩溃 (SEGV))。
-
LibXML:
- 修复了较新版本 libxml 中与输入缓冲区/解析器处理相关的一些弃用问题。
-
MySQLnd:
- 修复了错误 GH-20528(回归导致使用方括号内的 IPv6 地址连接 mysql 失败)。
-
Opcache:
- 修复了错误 GH-20329(opcache.file_cache 在全局字符串缓冲区满载时损坏)。
-
PDO:
- 修复了错误 GH-20553(PHP 8.5.0 中的 PDO::FETCH_CLASSTYPE 忽略 $constructorArgs)。
- 修复了 GHSA-8xr5-qppj-gvwj(PDO quoting result null deref)。(CVE-2025-14180)
-
Phar:
- 修复了错误 GH-20442(Phar 在读取存根时不考虑 __halt_compiler() 的大小写不敏感)。
- 修复 phar 文件条目的 fflush() 返回值错误的问题。
- 修复在超出边界的情况下使用 fseek 查找 phar 文件时断言失败的问题。
-
PHPDBG:
- 修复了 phpdbg_get_executable() 和 phpdbg_end_oplog() 中的 ZPP 类型违规问题。
-
SPL:
- 修复了错误 GH-20614(SplFixedArray 在反序列化中错误地处理引用)。
-
Standard:
- 修复 array_diff() 函数中的内存泄漏,并添加自定义类型检查。
- 修复了错误 GH-20583(通过深层结构在 http_build_query 中发生堆栈溢出)。
- 修复了 GHSA-www2-q4fc-65wf(dns_get_record() 中的空字节终止)。
- 修复了 GHSA-h96m-rvf9-jgm2(array_merge() 中的堆缓冲区溢出漏洞)。(CVE-2025-14178)
- 修复了 GHSA-3237-qqm7-mfv7(getimagesize 函数中的内存信息泄漏)。(CVE-2025-14177)
-
URI:
- 修复了错误 GH-20366(当遇到空字节时,ext/uri 错误地抛出 ValueError)。
- 修复了 CVE-2025-67899(uriparser 0.9.9 及更早版本允许无限制递归和堆栈消耗)。
-
XML:
- 修复了错误 GH-20439(当将数据传递给回调时,xml_set_default_handler() 无法正确处理属性中的特殊字符)。
-
Zip:
- 修复属性存在性测试中的崩溃问题。
- 不再截断 zip_fread() 返回值(使用用户指定大小时)。
-
Zlib:
- 修复因流过滤器对象参数而导致的断言失败与崩溃问题。
官方资源
|