PHP在最新的维护版本中修补了三处安全问题,其中包含可被用来实施SQL注入以及越界内存写入的高危缺陷。这三处漏洞分别对应扩展ext-pgsql、ext-bcmath和ext-phar,属于Web应用中较为常见的可选组件。

对于接收外部不可信参数、或会解析用户上传归档文件的服务,相关团队被建议尽快完成PHP环境更新。据freebuf报道,受影响用户可升级至8.2.33、8.3.33、8.4.24或8.5.9版本。

PHP紧急修复三处漏洞:SQL注入、内存越界与进程崩溃风险

PostgreSQL扩展中的SQL注入问题

编号CVE-2026-17543的缺陷对应最严重的风险等级,出在PostgreSQL扩展的php_pgsql_convert()函数内部。pg_insert()、pg_update()、pg_select()与pg_delete()等便捷接口在运行时都会走到这个函数。

问题代码采用PQescapeStringConn()对使用者提交的数值做转义处理,转义后的结果会被拼接进形如E'…'的字符串常量。而自PostgreSQL 9.1起,standard_conforming_strings默认为开启状态,此语境下反斜杠无法得到可靠转义。

借助这一缺陷,攻击者可向SQL语句中注入额外命令,进而有可能读取或篡改库中的数据。PHP给出的修复思路是,处理这类参数时不再使用转义字符串常量。

PHP紧急修复三处漏洞:SQL注入、内存越界与进程崩溃风险

BCMath扩展引发越界写入

第二处高危漏洞(CVE-2026-17544)牵扯BCMath扩展的bccomp()函数。触发条件为应用把受攻击者控制的数字字符串连同某个特定scale值一并传入。

缺陷落在bc_str2num()函数:PHP在截掉小数位并去掉尾部零时,缩减了缓冲区长度,却没有同步更新用于标识已复制小数数据末端位置的指针。这样一来,复制操作可能写出已分配缓冲区的边界,形成越界写入,对栈或堆内存造成破坏。

PHP紧急修复三处漏洞:SQL注入、内存越界与进程崩溃风险

依据应用条件与PHP运行环境差异,这类内存破坏既可能直接让进程退出,也可能被进一步利用来发起更严重的攻击。补丁的处理办法是在裁剪零值之后重置小数数据末尾指针,使实际拷贝的数据量与缓冲区容量对齐。

Phar扩展的递归崩溃隐患

第三处编号CVE-2026-7260的缺陷影响Phar扩展,会使PHP进程直接崩溃。它来自phar_get_link_source()函数:该函数在递归跟踪Phar归档内保存的符号链接时,既没有设定递归层数上限,也没有识别循环引用。

一旦tar格式的Phar归档中包含成环的符号链接,递归就会无穷进行下去,PHP最终因段错误(segmentation fault)退出,形成中等强度拒绝服务,CVSS评分为6.5。

PHP紧急修复三处漏洞:SQL注入、内存越界与进程崩溃风险

该Phar缺陷需要用户或程序去读取特制归档才能触发,但仍有可能拖垮负责自动检查、解包或读取上传文件的远端服务。

修复版本与自查建议

官方给出的升级目标是PHP 8.2.33、8.3.33、8.4.24与8.5.9。管理员还需重点审视三类流程:依赖PostgreSQL辅助函数、以外部传入值执行BCMath运算,以及解析Phar或tar归档的文件上传链路。

小结:本次PHP维护版本集中修补了SQL注入、越界内存写入和递归段错误三类共三个漏洞,涉及ext-pgsql、ext-bcmath与ext-phar三个扩展。对使用这些组件并处理外来输入的线上服务而言,尽快升级到8.2.33、8.3.33、8.4.24或8.5.9是必要动作,同时应复查相关调用链路。