ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

PHP紧急修复三处高危漏洞:PostgreSQL扩展SQL注入威胁升级,开发者需立即升级

2026/8/2 11:40:27 拓冰建站 浏览量
PHP紧急修复三处高危漏洞:PostgreSQL扩展SQL注入威胁升级,开发者需立即升级

七月末的这次安全更新来得并不突然,却足以让依赖PHP生态的开发者捏一把汗。PHP官方在2026年7月28日至29日连续推送了四个活跃分支的补丁版本,分别是8.2.33、8.3.33、8.4.24和8.5.9。这次同步修复的核心问题直指三个安全缺陷,其中两处被评为高危级别,CVSS v4评分双双达到8.1分。对于支撑全球近八成网站运行的PHP而言,任何核心扩展的漏洞都可能演变成一场数据灾难。

PostgreSQL扩展成重灾区:反斜杠转义失效引发SQL注入

三个漏洞里最让人警觉的,是编号CVE-2026-17543的PHP SQL注入漏洞。问题出在ext-pgsql扩展的php_pgsql_convert()函数身上——这个负责帮pg_insert、pg_update、pg_select和pg_delete做参数转义的"守门员",在PostgreSQL默认开启standard_conforming_strings的情况下,对反斜杠的处理出现了致命疏忽。

攻击者只需要在输入中构造包含E'...'语法的恶意字符串,就能让转义例程形同虚设。原本应该被安全包裹的用户输入,借此撕开一道口子,外部SQL代码顺势注入数据库查询。这意味着什么?攻击者可以在未经授权的情况下读取、篡改甚至删除敏感数据。由于PHP的PostgreSQL扩展被大量内容管理系统和电商平台直接调用,这个漏洞的实际影响面远比纸面上的CVSS分数更可怕。

内存安全漏洞接踵而至:BCMath与phar组件双双中招

如果说SQL注入是明面上的数据窃取通道,那么另外两处内存安全问题就是埋在进程深处的定时炸弹。

CVE-2026-17544潜伏在BCMath扩展的bccomp()函数中。当这个高精度数学运算函数接收到精心构造的操作数和scale参数时,会发生越界写入。栈内存或堆内存被破坏后,轻则导致服务异常终止,重则为远程代码执行创造条件。这个漏洞只影响8.4和8.5分支,但评分同样高达8.1,与PostgreSQL注入漏洞平起平坐。

另一个编号CVE-2026-7260的问题藏在phar归档处理逻辑里。恶意构造的phar文件如果包含循环符号链接,PHP在解析时会陷入无限递归,直到C栈被彻底耗尽,进程直接崩溃。虽然它的CVSS评分只有5.4,属于中危级别,但在自动化攻击场景下,这种拒绝服务漏洞足以让线上业务瞬间瘫痪。

漏洞影响范围与当前态势

从受影响版本来看,SQL注入和phar堆栈溢出波及面较广,覆盖了8.2、8.3、8.4、8.5四个分支中尚未更新的所有版本。BCMath的越界写入则相对集中,仅存在于8.4和8.5的旧版本中。值得庆幸的是,目前安全社区尚未监测到这三处漏洞的野外利用案例,补丁窗口期仍然存在。

不过"尚未利用"从来不是拖延的理由。PHP作为互联网基础设施的核心组件,其安全漏洞的修复链条往往比攻击者的武器化速度更慢。历史经验反复证明,从补丁发布到大规模利用之间,通常只隔着几周甚至几天的间隔。

修复建议与版本升级路径

对于运维人员和开发者来说,当前最务实的动作只有一个:核对生产环境的PHP版本,然后升级到对应分支的最新补丁版本。如果你运行的是8.2或8.3系列,直接更新到8.2.33或8.3.33即可同时解决SQL注入和phar问题;若你的业务已经迁移到8.4或8.5,则需要分别升级到8.4.24和8.5.9,这样才能把三处漏洞一网打尽。

在升级之前,建议先在测试环境验证PostgreSQL扩展的兼容性,尤其是依赖pg_insert、pg_update等函数做数据操作的业务模块。对于暂时无法重启服务的场景,可以考虑在数据库层面临时调整standard_conforming_strings配置,但这只是权宜之计,不能替代官方补丁。

此外,这次事件也再次提醒开发团队:依赖语言运行时自带的转义函数作为唯一防线,本身就是一种风险。在数据库交互层引入参数化查询或ORM框架,才能在类似漏洞爆发时多一层缓冲。毕竟,当核心扩展的转义逻辑本身出现缺陷时,应用层的安全设计才是最后一道护城河。