· adswds-team · 安全  · 5 min read

PHP-FPM 的 IPv6 白名单少比了 4 个字节:CVE-2026-91768

2026-09-24 PHP 安全发行:listen.allowed_clients 对 IPv6 只比较前 12 字节,等于把精确地址放宽成 /96。修复于 8.2.34、8.3.35、8.4.26、8.5.11。Unix 套接字与纯 IPv4 不受影响。

2026-09-24 PHP 安全发行:listen.allowed_clients 对 IPv6 只比较前 12 字节,等于把精确地址放宽成 /96。修复于 8.2.34、8.3.35、8.4.26、8.5.11。Unix 套接字与纯 IPv4 不受影响。

2026-09-24 的 PHP 安全发行修了一处 FPM 访问控制,而不是语言特性。GHSA-62xp-839h-2637(CVE-2026-91768)写明:FastCGI 客户端检查的 IPv6 分支只用 12 字节去比 16 字节地址,于是 listen.allowed_clients 匹配的是 /96 前缀,不是你写下的那一个地址。能够源出一个与白名单共享前 96 位的地址、并且网络上够得到监听端口的人,会通过这道 ACL,到达 FastCGI 端点。

一句话:白名单写的是单主机,比出来的是一张 /96。

CVE 记录 的分数是 CVSS 3.1 6.5(Medium,AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)。攻击向量是相邻网络,不是「互联网上任意主机」。Advisory 的影响段同时写:在不少部署里,到达 FastCGI 端点意味着在 FPM worker 上下文里执行 PHP。分数本身没有把完整性算进去,读的时候以公告原文为准,不要只看 6.5 就当成「只能读配置」。


一、谁受影响

项内容
受影响8.2.34、8.3.35、8.4.26、8.5.11 之前
修复8.2.34、8.3.35、8.4.26、8.5.11 及同分支更高版本
前提FastCGI 走 IPv6 TCP,并且拿 listen.allowed_clients 当安全边界
不受影响Unix 套接字、只听 IPv4、或真正的边界是外部防火墙
修复方式比较长度改为 sizeof 整个 in6_addr(16 字节)
变更日志PHP 8.5.11 等 9 月 24 日安全发行中的 FPM 项

IPv4 分支比的是完整 4 字节。IPv4-mapped IPv6 用 12 字节偏移去取内嵌 IPv4,这个偏移是对的;把它当成普通 IPv6 的比较长度,就不对了。允许列表本身是用 inet_pton(AF_INET6, ...) 按完整地址解析的,所以截断是静默放宽,配置看起来仍然是单地址。

Advisory 用本机 php-fpm 做过对照:listen.allowed_clients = ::2 时,来自 ::1 的请求仍被接受(两者共享前 96 位);换成 2001:db8::2 后,来自 ::1 会被拒绝。这是访问控制行为,不是「远程任意代码」的通用前提。


二、落地页节点怎么处理

广告主机上常见的是 127.0.0.1:9000 或 Unix 套接字,这两类不在本漏洞的影响声明里。需要立刻核对的是:

  • listen 是否为 IPv6 地址(含 [::1] 或公网/内网 IPv6);
  • 是否用 listen.allowed_clients 代替防火墙;
  • 白名单地址的前 96 位是否还能被同链路的其他地址源出来(含本机其他地址、容器网段、邻居)。

处理顺序:升到 8.3.35 / 8.4.26 / 8.5.11 / 8.2.34 或该分支更新的安全版;同一台机器上的 Web 服务器改为 Unix 套接字;若必须 TCP,用防火墙做 /128 匹配,不要只信 FPM 这行配置。Red Hat 的说明同样建议 Unix 套接字或防火墙精确匹配,并提醒重启 php-fpm 会打断正在处理的请求。

10 月 21 日的严重 RCE(CVE-2026-109618、CVE-2026-109619)是另一件事。若主机还停在 9 月之前,一次升到 10 月修复版会同时带上这次 ACL 修复;只打 9 月的包则不包含 10 月那两枚。


三、小结

CVE-2026-91768 把 IPv6 的 listen.allowed_clients 从「这一台」放宽成「这一个 /96」。Unix 套接字和纯 IPv4 监听可以保持现有架构,但只要白名单是你唯一的 FastCGI 边界,就该升级并改到套接字或防火墙。分数是中等、向量是相邻网络,影响段写的是可能执行到 worker 里的 PHP。

来源:GHSA-62xp-839h-2637、CVE-2026-91768、PHP 8 Changelog 8.5.11。

相关文章

查看全部 »

同标签更多