PHP远程代码执行漏洞(CVE-2026-109618/CVE-2026-109619)通告
内容提要
绿盟科技发布通告,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日志,关注异常崩溃、警告、致命错误、异常子进程创建或非预期文件写入行为。