当前位置:首页>php>PHP修复三个漏洞:SQL注入、内存损坏与服务器崩溃

PHP修复三个漏洞:SQL注入、内存损坏与服务器崩溃

  • 2026-08-25 18:05:14
PHP修复三个漏洞:SQL注入、内存损坏与服务器崩溃

PHP在其最新维护版本中修复了三个安全漏洞,其中包括可能导致应用程序遭受SQL注入和越界内存写入的高危漏洞。

这些漏洞影响Web应用程序常用的可选PHP扩展:ext-pgsql、ext-bcmath和ext-phar。建议各组织尽快更新其PHP环境,尤其是那些处理不可信输入或上传归档文件的应用程序。

Part01

PostgreSQL扩展SQL注入漏洞

最严重的漏洞(CVE-2026-17543)影响PostgreSQL扩展,存在于php_pgsql_convert()函数中。pg_insert()、pg_update()、pg_select()和pg_delete()等便捷函数均会调用该函数。存在漏洞的代码使用PQescapeStringConn()对用户提供的值进行转义,随后将结果放入格式为E'…'的转义字符串常量中。

当PostgreSQL的standard_conforming_strings设置开启时(自PostgreSQL9.1版本起该设置默认启用),反斜杠在此上下文中无法被安全转义。

攻击者可以利用该漏洞注入SQL命令,从而可能访问或修改数据库数据。PHP通过在处理这些参数时改用非转义字符串常量修复了该问题。

Part02

BCMath扩展内存损坏漏洞

第二个高危漏洞(CVE-2026-17544)影响BCMath扩展的bccomp()函数。当应用程序将攻击者控制的数字字符串与特定的scale值一起传入时,便会触发该问题。

该bug位于bc_str2num()函数中,PHP在此截断小数位并移除末尾的零。代码减少了分配的缓冲区大小,但未更新用于标记已复制小数数据末尾的指针。

因此,PHP可能复制超过所分配缓冲区容量的数据,导致越界写入,进而破坏栈或堆内存。根据应用条件和PHP运行时环境的不同,内存损坏漏洞可能导致进程崩溃,或为更严重的利用创造条件。

该补丁在截断零值后更新小数数据的末尾指针,确保复制的数据与分配的缓冲区大小一致。

Part03

Phar扩展拒绝服务漏洞

第三个漏洞(CVE-2026-7260)影响Phar扩展,可导致PHP进程崩溃。

该漏洞源于phar_get_link_source()函数,该函数会递归追踪Phar归档中存储的符号链接,且未强制实施递归深度限制,也未检测循环引用。

包含循环符号链接的恶意tar格式Phar归档可触发无限递归,导致PHP因段错误(segmentation fault)而崩溃,从而造成中等级别的拒绝服务(CVSS6.5)。

该Phar漏洞需要用户或应用程序处理特制的归档文件才能触发。不过,它仍可能破坏自动检查、解压或读取上传文件的服务。

Part04

升级建议

受影响的用户应将PHP升级至8.2.33、8.3.33、8.4.24或8.5.9版本。

PHP管理员还应审查依赖PostgreSQL辅助函数、使用外部提供值执行BCMath运算,以及解析Phar或tar归档的文件上传流程的相关应用程序。

参考来源:

PHP Patches Three Flaws Enabling SQL Injection, Memory Corruption and Server Crashes

https://cybersecuritynews.com/php-patches-three-flaws/

推荐阅读

电报讨论

最新文章

随机文章