PHP 8.5.11 发布,修复多项安全漏洞
PHP 项目已发布 PHP 8.5.11,为 8.5 分支的 22 个组件带来了 57 项修复。
PHP 项目已发布 PHP 8.5.11,这是 8.5 分支的一次维护更新。此次发布包含 57 项缺陷修复,涉及 BCMath、Core、DOM、GD、FPM、Intl 等 22 个组件,持续为生产环境提供维护支持。
这是一次安全更新,修复了 CVE-2026-91768、CVE-2025-1218、CVE-2026-91769、CVE-2026-91767、CVE-2026-6103、CVE-2026-91765、CVE-2025-14181、CVE-2026-93682、CVE-2026-92842、CVE-2026-91766 和 CVE-2026-17545。受影响的部署环境应尽快升级。
以下为完整的官方更新日志,每个条目均链接至对应的上游问题。建议使用 8.5 分支的用户择机更新;构建版本、源码压缩包和校验和可从 php.net 获取。
官方更新日志
安全更新
BCMath
- 修复了当
scale超过n_scale时,bc_is_zero_for_scale()中发生的越界读取问题。(Ilia Alshanetsky)
Core
- 修复了自动检测 UTF-16/32 编码时发生的越界读取问题。(Yudai Takada)
- 修复了 GH-15375:在内部生成器上调用
valid()或next()后,嵌套的yield from会跳过元素。(iliaal) - 修复了 GH-23232:单独的命名空间分隔符会导致自动加载器接收到空类名请求。(spawnia)
- 修复了 GH-23301:当中间层生成器再次委托迭代时,嵌套的
yield from会重复产出同一个值。(Lazizbek Ergashev)
DOM
- 修复了在遵循规范的模式下,
NamedNodeMap::getNamedItemNS()使用空 URI 时无法匹配null命名空间的问题。(Ilia Alshanetsky) - 修复了写入
className/classList或移除属性后,getElementsByClassName()及其他节点列表的缓存未及时更新的问题。(Ilia Alshanetsky) - 修复了在调用
DOMDocument::xinclude()后克隆DOMNameSpaceNode时发生的释放后使用问题。(iliaal) - 修复了
DOMXPath中的崩溃问题:当一个php:function回调接收节点集,而后续回调返回另一个文档中的节点时,会触发崩溃。(iliaal) - 修复了 GH-23331:当
node_list_unlink()跳过仍有存活包装对象的属性子节点时,会发生释放后使用(UAF)。(iliaal) - 修复了
Dom\Element::setAttributeNS()替换属性值时发生的释放后使用问题,该问题出现在属性的子节点仍有存活包装对象的情况下。(iliaal)
GD
- 修复了
imageaffinematrixget()和imageaffinematrixconcat()在错误消息中报告错误参数的问题。(Weilin Du)
FPM
- 修复了 GH-19320:FPM 的 UID 和 GID 溢出。(Pratik Bhujel)
- 修复了 GHSA-62xp-839h-2637:FastCGI 的
listen.allowed_clients仅比较部分地址,导致 IPv6 访问控制列表(ACL)可被绕过。(CVE-2026-91768)(Alexandre Daubois)
Intl
- 修复了
grapheme_strpos()和grapheme_strrpos()在查找空字符串时返回 UTF-16 偏移量而非字素偏移量的问题。(Ilia Alshanetsky) - 修复了转储
IntlCalendar实例时发生的内存泄漏问题。(Ilia Alshanetsky) - 修复了迭代
IntlBreakIterator::getPartsIterator()的结果时发生的内存泄漏问题。(iliaal) - 修复了 ICU 构造函数接管
TimeZone后,IntlGregorianCalendar构造失败时发生的重复释放问题。(iliaal) - 修复了 GH-23094:
NumberFormatter解析 UTF-8 字符串时,偏移量使用了 UTF-16 位置。(ColumbusLabs) - 修复了
Locale::parseLocale()读取时越过末尾-或_的问题。(iliaal、Xuyang Zhang) - 修复了
grapheme_str_split()将UBRK_DONE当作字节索引处理的问题。(iliaal) - 修复了
Locale::getKeywords()在无法读取关键字值时发生的内存泄漏问题。(iliaal) - 修复了使用已编译规则构造
IntlRuleBasedBreakIterator时发生的释放后使用问题。(iliaal)
MBString
- 修复了
mb_ereg_replace()在\k<name>反向引用缺少闭合分隔符时,将 NUL 字节或越界读取的字节写入替换结果的问题。(Ilia Alshanetsky)
MySQLnd
- 修复了 GHSA-r6x9-5r99-36j7:mysqlnd 线协议(wire protocol)处理中存在多处数据包越界读取问题。(CVE-2025-1218)(Jakub Zelenka、Nora Dossche)
ODBC
- 修复了
SQLColAttribute失败时,odbc_field_len()、odbc_field_scale()和odbc_field_type()返回未初始化内存内容的问题。(Ilia Alshanetsky)
Opcache
- 修复了 ZTS 模式下
opcache.protect_memory的竞态条件。(realFlowControl) - 修复了跟踪式 JIT 在为某个类的方法编译
side trace时发生的崩溃问题;该类无法存入继承缓存。(GH-21710)(Arnaud、iliaal) - 修复了大页共享内存(SHM)重新映射时,丢弃保留地址范围之外的映射所导致的崩溃问题。(Piotr Hałas)
OpenSSL
- 修复了 GHSA-vvx9-73fr-5jjx:TLS 主机名验证在主体备用名称(SAN)不匹配后,回退到通用名称(CN)进行验证。(CVE-2026-91769)(Jakub Zelenka)
- 修复了 GHSA-xr7j-rvgx-xq5p:精心构造的服务器证书通配符 CN 会导致
php_openssl_matches_wildcard_name()发生堆缓冲区溢出。(CVE-2026-91767)(Jakub Zelenka)
PDO
- 修复了持久连接存活检查失败且没有其他存活 PDO 句柄时发生的内存泄漏问题。(iliaal)
PDO_PGSQL
- 修复了
PDO::CURSOR_SCROLL语句在延迟获取模式(PDO::ATTR_PREFETCH => 0)下执行失败的问题。(KentarouTakeda)
PDO Sqlite
- 修复了 GH-20214:
PDO::FETCH_DEFAULT与PDOStatement::setFetchMode配合使用时出现非预期行为。(SakiTakamachi)
Phar
- 修复了 GH-23418:查找挂载目录时发生释放后使用。(Weilin Du)
- 修复了 GH-23477:原生 Phar 清单中存在重复条目时发生内存泄漏。(Weilin Du)
- 修复了 GHSA-j3wh-g957-2m85:
phar_tar_number()中的整数溢出可导致 TAR 归档条目注入。(CVE-2026-6103)(Jakub Zelenka)
Readline
- 修复了交互式 shell 未等待分页器进程退出的问题。(Weilin Du)
SOAP
- 修复了
soap:header定义headerfaults时导致 WSDL 缓存损坏的问题。(Ilia Alshanetsky) - 修复了解析包含自引用模式组或
attributeGroups的 WSDL 时发生的栈溢出问题。(Ilia Alshanetsky) - 修复了 GHSA-rgrp-mwpx-f6rm:服务端
cleanup_xml_node()中存在无界递归。(CVE-2026-91765)(Alexandre Daubois) - 修复了 GHSA-cj93-vc83-wgqv:SOAP HTTP 解析中的整数溢出会导致缓冲区溢出。(CVE-2025-14181)(Nora Dossche、Jakub Zelenka)
Standard
- 修复了流过滤器回调在重新附加桶之前取消设置
StreamBucket::$data时发生的段错误。(iliaal) - 修复了 GHSA-7875-c8px-7q5f:HTTP 流封装器跟随
Location头为空的重定向时发生越界读取。(CVE-2026-93682)(Ilia Alshanetsky、Jordi Kroon) - 修复了
php_stream_filter_flush()中读缓冲区的压缩整理问题。(crystarm) - 修复了 GH-22410:处理大数时浮点数行为异常。(arshidkv12)
- 修复了 GH-23338:
fsockopen()/pfsockopen()的ValueError为$timeout报告了错误的参数序号。(lacatoire) - 修复了 GH-23576:
array_keys()返回数组的下一个索引错误。(Lazizbek Ergashev) - 修复了 GHSA-88hq-2827-7pg6:当
line-break-chars包含 NUL 字节时,convert.*流过滤器会发生越界读取。(CVE-2026-92842)(geeknik) - 修复了 GHSA-fpwc-w8rq-cr92:HTTP 流封装器在重定向时发生跨源凭据泄漏。(CVE-2026-91766)(Alexandre Daubois)
SimpleXML
- 修复了向
attributes()返回对象的索引位置写入值时,未创建相应属性的问题。(Ilia Alshanetsky) - 修复了涉及命名空间时,无法通过属性名访问
SimpleXMLElement::addChild()返回元素的子元素的问题。(Ilia Alshanetsky)
Windows
- 修复了 GHSA-9f67-6fw4-hpfp:执行文件和流 I/O 前未拒绝保留设备名。(CVE-2026-17545)(Shivam Mathur、Jakub Zelenka)
Zip
- 修复了 GH-17787:流仍处于打开状态时释放归档,会导致
ZipArchive流提前停止读取。(Eyüp Can Akman) - 修复了 GH-23276:保存自身流的
ZipArchive子类无法被垃圾回收。(Weilin Du、ndossche)
SAPI
- 修复了模糊测试目标无法独立构建的问题。(Mrmaxmeier)
- 修复了 LiteSpeed lsapi SAPI 返回未初始化值的问题。(Go Kudo)
CatchAdmin
后端开发工程师,前端入门选手,略知相关服务器知识,偏爱❤️ Laravel & Vue
本作品采用《CC 协议》,转载必须注明作者和本文链接