资讯 PHP 8.5.11 修复 FPM IPv6 ACL 绕过、嵌套 yield from 丢元素与 DOM UAF

2026-10-07 21:02:18

PHP 8.5.11 修复 FPM IPv6 ACL 绕过、嵌套 yield from 丢元素与 DOM UAF

PHP 8.5.11 于 2026-09-24 发布,完整 ChangeLog 见 php.net/ChangeLog-8.php。

BCMath

  • 修复 bc_is_zero_for_scale() 在 scale 超过 n_scale 时的越界读取。

Core

  • 修复自动 UTF-16/32 编码检测过程中的越界读取。
  • 修复 GH-15375:嵌套 yield from 在内部生成器调用 valid() 或 next() 之后跳过元素。
  • 修复 GH-23232:单独的命名空间分隔符会让自动加载器请求空类名。
  • 修复 GH-23301:中间生成器再次委托时,嵌套 yield from 重复产出一个值。

DOM

  • 修复遵循规范模式下,NamedNodeMap::getNamedItemNS() 传入空 URI 时无法匹配 null 命名空间的问题。
  • 修复 className/classList 写入以及属性删除后,getElementsByClassName() 和其他节点列表缓存未失效的问题。
  • 修复 DOMDocument::xinclude() 之后克隆 DOMNameSpaceNode 的 use-after-free。
  • 修复 DOMXPath 中 php:function 回调收到 nodeset、后续回调返回另一文档节点时的崩溃。
  • 修复 GH-23331:node_list_unlink() 跳过仍有活动 wrapper 的属性子节点时的 UAF。
  • 修复 Dom\Element::setAttributeNS() 替换属性值时,该属性子节点仍有活动 wrapper 的 use-after-free。

GD

  • 修复 imageaffinematrixget() 和 imageaffinematrixconcat() 在错误消息中报告错误参数的问题。

FPM

  • 修复 GH-19320:FPM UID 和 GID 溢出。
  • 修复 GHSA-62xp-839h-2637:FastCGI 的 listen.allowed_clients 因地址比较不正确导致 IPv6 ACL 绕过(CVE-2026-91768)。

Intl

  • 修复 grapheme_strpos() 和 grapheme_strrpos() 在空 needle 时返回 UTF-16 偏移而非字素偏移的问题。
  • 修复 GH-23094:NumberFormatter 解析 … 对 UTF-8 字符串使用 UTF-16 位置。
  • 修复 Locale::parseLocale() 读取越过尾部 - 或 _ 的问题。
  • 修复 grapheme_str_split() 将 UBRK 当作字节索引的问题。

Standard

  • 修复流过滤器 … 取消设置 StreamBucket … 重新附加 bucket 时的段错误。
  • 修复 GHSA-…(Out … wrapper when following …)。(CVE-2026-93682)

升级建议

本次发布包含两个安全修复:FPM 的 CVE-2026-91768 和 Standard 组件的 CVE-2026-93682。使用 8.5 分支的环境应升级到 8.5.11。

如果 PHP-FPM 通过 listen.allowed_clients 限制 FastCGI 访问,并且监听地址或客户端地址涉及 IPv6,建议优先安排升级并复核现有 ACL 是否按预期生效。依赖 DOM、Intl、Core 生成器的应用,升级后可针对本次涉及的 yield from 嵌套委托、getElementsByClassName() 缓存、grapheme_* 偏移等行为做一次回归验证。

复制全文 生成海报 PHP 安全更新 FPM CVE DOM

推荐文章

程序员茄子在线接单