PHP远程代码执行漏洞(CVE-2026-109618/CVE-2026-109619)通告

💡 原文中文,约1600字,阅读约需4分钟。
📝

内容提要

绿盟科技发布通告,PHP Core因longjmp()处理OOM错误存在内存管理缺陷,可导致释放后重用。未认证攻击者可构造特制multipart请求触发内存破坏,造成进程崩溃,甚至以PHP服务账户权限执行任意代码,CVSS评分9.2。漏洞影响PHP 8.2至8.5多个版本及WordPress等应用,建议升级至8.5.12、8.4.27、8.3.36、8.2.35及以上版本,或采取临时缓解措施。

🔎

延伸解读

漏洞成因与触发路径

该漏洞源于PHP Core使用longjmp()处理OOM错误时,内存分配失败与全局状态处理存在缺陷,导致对象释放后重用。未认证攻击者可通过特制multipart请求触发内存破坏,造成进程崩溃,甚至以PHP服务账户权限执行任意代码。CVSS评分9.2,且已有漏洞细节披露,风险较高。

影响范围与版本分支

受影响版本包括PHP 8.5.11及以下、8.4.26及以下、8.3.35及以下、8.2.34及以下。通告指出影响范围涉及WordPress、MediaWiki、phpBB、Magento、Laravel、Symfony、Drupal等应用组件,涵盖PHP 5.x至8.5,但PHP 5、7、8.0、8.1等分支已停止维护,需特别关注。

临时缓解措施要点

若无法立即升级,可移除可预测的单次请求内存限制,设置memory_limit=-1,关闭会话上传进度功能,设置fatal_error_backtraces=0与session.upload_progress.enabled=0,并重启PHP-FPM或Web服务器;同时启用严格会话模式session.use_strict_mode=1,降低攻击者指定任意会话ID的风险。

资产排查与日志监控

建议全面清点运行PHP 5至8.5版本的各类主机与容器实例,并密切监控Web服务与PHP运行日志,重点关注PHP工作进程的异常崩溃、警告/弃用、清理阶段诊断、致命错误、异常子进程创建或非预期文件写入行为,以便及时发现潜在攻击迹象。

❓

Q&A

PHP远程代码执行漏洞CVE-2026-109618和CVE-2026-109619的成因是什么?

PHP Core使用longjmp()处理内存溢出(OOM)错误时存在内存管理缺陷,导致内存分配失败及全局状态处理问题,进而引发对象释放后重用(Use-After-Free)。

攻击者如何利用这个PHP漏洞?需要认证吗?

未经身份验证的攻击者可以构造特制的multipart请求触发内存破坏,造成进程崩溃,甚至以PHP服务账户权限执行任意代码。

哪些PHP版本受此漏洞影响?

受影响版本包括:PHP <= 8.5.11、PHP <= 8.4.26、PHP <= 8.3.35、PHP 8.2.4至8.2.34。此外,WordPress、MediaWiki、phpBB、Magento、Laravel、Symfony、Drupal等应用组件也受影响,涵盖PHP 5.x至8.5,但PHP 5、7、8.0、8.1等分支已停止维护。

如何检测我的PHP环境是否存在该漏洞风险?

可以通过命令行运行php -v查看PHP版本,若版本在受影响范围内,则可能存在安全风险。

修复这个PHP漏洞应该升级到哪个版本?

官方已发布修复版本,建议升级至PHP 8.5.12、8.4.27、8.3.36、8.2.35或更高版本。下载链接:https://github.com/php/php-src/releases。

如果暂时无法升级PHP,有哪些临时缓解措施?

可采取以下临时措施:1. 设置memory_limit=-1,关闭会话上传进度功能(fatal_error_backtraces=0与session.upload_progress.enabled=0),并重启PHP-FPM或Web服务器;2. 启用严格会话模式(session.use_strict_mode=1);3. 排查受影响资产,监控Web服务与PHP日志,关注异常崩溃、警告、致命错误、异常子进程创建或非预期文件写入行为。

🏷️

标签

➡️

继续阅读