PHP 2026-08 例行安全版:BCMath 越界写、Phar 符号链接与 libgd 更新
PHP 官方发布 2026-08 例行安全版本:8.2.33、8.3.33、8.4.24、8.5.9。除此前已单独披露的 ext-pgsql SQL 注入(CVE-2026-17543)外,这批版本还修复了三个值得关注的问题。
bccomp() 越界写:CVE-2026-17544
BCMath 的 bccomp() 存在越界写漏洞,影响 PHP 8.4 与 8.5,修复随 8.4.24、8.5.9 发布。bccomp() 用于比较两个任意精度数值,问题出在比较过程的缓冲区写入上。BCMath 在常规使用中常被当作纯计算组件,不直接映射到内存结构,但底层实现同样需要处理字节缓冲区。这次的漏洞说明数值比较库也要按内存安全问题来跟踪和修复,不能因为业务层只传字符串就忽略攻击面。
Phar 递归符号链接崩溃:CVE-2026-7260
Phar 扩展解包时没有对符号链接遍历做深度限制。攻击者构造 phar 内部目录与符号链接的递归引用,可触发进程崩溃。这类问题的触发点集中在 phar 文件解析或读取入口,缓解手段有两个方向:只对可信输入开启 phar 解析;使用 __halt_compiler() 截断宿主文件附加数据的场景,同样只接受可信来源的 phar。生产环境中如存在从外部接收 phar 包的路径,建议先行收敛输入来源,再安排升级。
libgd 更新:CVE-2026-9672
本次版本同步修复内置 libgd 的 CVE-2026-9672,修复包含在 8.5.9 与 8.4.24 中。libgd 位于 PHP 图像处理栈底层,使用 gd 相关函数处理外部图片的服务会受此影响。升级后可重点验证典型图片输入路径,确认图像解码、缩放与输出流程正常。
升级建议
生产环境直接升级到 8.5.9,或按当前所在分支升级到 8.4.24、8.3.33、8.2.33。升级后建议在测试环境覆盖三条路径:BCMath 中 bccomp() 或封装其结果的业务逻辑、Phar 解包与读取流程、gd 图像处理调用;它们分别对应本次修复的三个 CVE。已在旧补丁版本上运行的实例不宜继续暴露 phar 或图片解析入口,应尽快完成升级。