代码 PHP 例行安全版里的三处坑:bccomp 越界写、Phar 递归符号链接崩溃与 libgd

2026-09-02 21:04:32

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 或图片解析入口,应尽快完成升级。

复制全文 生成海报 PHP 安全 版本更新 漏洞修复

推荐文章

程序员茄子在线接单