
PHP 远程代码执行漏洞(CVE-2026-109618、CVE-2026-109619),均与 PHP 请求生命周期边界上的状态管理缺陷有关:CVE-2026-109618 即内存耗尽(OOM)处理中的内存破坏。CVE-2026-109619 即跨请求的陈旧全局状态导致释放后使用(UAF)。两者统称为“PHP2Shell”, 是 PHP 核心的严重未认证远程代码执行(RCE)漏洞。目前漏洞 PoC 和技术细节已公开,且已发现在野利用,建议用户尽快自查及升级防护。
鉴于该漏洞影响范围较大,OpenAtom openEuler(简称:“openEuler”或“开源欧拉”)社区迅速开展应急响应,2026年10月21日完成对社区全部在维版本的评估分析,并于2026年10月22日完成了 openEuler 在维版本全系列 PHP 版本的修复与发布,建议用户尽快做好自查并及时升级修复版本。
CVE-2026-109618 利用内存耗尽(OOM)时的 longjmp() 过早退出并终止请求处理,特定情况下会导致未初始化内存被错误消费。
CVE-2026-109619 利用工作进程(worker)全局状态在请求结束后未正确重置,使过期状态被重复访问,形成释放后使用(UAF),进而实现内存泄露和远程代码执行。
系统版本 | PHP RPM版本 | 是否受影响 | 修复补丁链接 |
openEuler-20.03-LTS-SP4 | <= 8.0.30-17 | 是 | https://gitcode.com/src-openeuler/php/pull/381 |
openEuler-22.03-LTS-SP4 | <= 8.0.30-17 | 是 | https://gitcode.com/src-openeuler/php/pull/380 |
openEuler-24.03-LTS-SP1 | <= 8.3.35-1 | 是 | https://gitcode.com/src-openeuler/php/pull/382 |
openEuler-24.03-LTS-SP3 | <= 8.3.35-1 | 是 | https://gitcode.com/src-openeuler/php/pull/383 |
openEuler-24.03-LTS-SP4 | <= 8.3.35-1 | 是 | https://gitcode.com/src-openeuler/php/pull/384 |
参照上游 PHP 社区修复建议,openEuler 版本修复 RPM 包已完成修复或升级,具体信息可在安全公告中获取。
系统版本 | 修复PHP版本 | 公告链接 |
openEuler-20.03-LTS-SP4 | 8.0.30-18 | 当前版本只支持离线升级。软件包获取地址: https://dl-cdn.openeuler.openatom.cn/openEuler-20.03-LTS-SP4/update |
openEuler-22.03-LTS-SP4 | 8.0.30-18 | https://www.openeuler.openatom.cn/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-4414 |
openEuler-24.03-LTS-SP1 | 8.3.36-1 | |
openEuler-24.03-LTS-SP3 | 8.3.36-1 | |
openEuler-24.03-LTS-SP4 | 8.3.36-1 |
PHP 版本自查:php -v、php-fpm -v,确定PHP 是否在受影响范围(< 8.2.35, < 8.3.36, < 8.4.27, < 8.5.12 )。如果提示 php: command not found,则未部署 PHP 组件,不受该漏洞影响。若输出 PHP 版本信息,如图 8.3.35则属于受影响范围:


1)如上图所示,表明该系统使用 openEuler 软件源部署 PHP 组件,根据识别到的组件版本 8.3.35-1。根据上文【受影响在维版本及修复补丁】章节,该版本为受影响版本。可参考下文【 漏洞修复 】章节,修复该漏洞。
2)如果命令未输出,则表明当前系统未使用 openEuler 软件源部署 PHP 组件,需用户根据 PHP 社区指引升级相关软件。
官方源在线升级:dnf update php -y

或手动离线升级(需要下载需要更新的 PHP 所有子包):
dnf localinstall -y php-*.rpm
注1:离线升级可能有依赖不存在的情况,需提前配置本地镜像源,避免因依赖安装失败
注2:以24.03-LTS-SP3版本update为例 最新 PHP 包获取地址:
https://repo.openeuler.org/openEuler-24.03-LTS-SP3/update/aarch64/Packages/

php -v、php-fpm -v 、rpm -qa | grep php

第一步 PHP 服务重启:
systemctl restart php-fpm
systemctl status php-fpm

确认启动时间在更新时间之后
第二步 网页服务器重启(以 Apache httpd 为例):
systemctl restart httpd
systemctl status httpd

确认启动时间在更新时间之后
在无法更新修复补丁的情况下可尝试采取以下规避措施:
修改 php.ini的配置,定位 php.ini 路径: php –ini

1、配置 memory_limit (CVE-2026-109618)、upload progress(CVE-2026-109619)
1)定位 php.ini
grep -R --include='*.ini' -n 'session.upload_progress.enabled' /etc/php*
grep -R --include='*.ini' -n 'memory_limit' /etc/php*


2)修改配置
vi /etc/php.ini ,定位到输出的1441行
原文 ;session.upload_progress.enabled = On
修改为 session.upload_progress.enabled = Off
vi /etc/php.ini ,定位到输出的445行
原文 memory_limit = 128M
修改为 memory_limit = -1
3)PHP 服务重启:
systemctl restart php-fpm
systemctl status php-fpm

确认启动时间在更新时间之后
4)网页服务器重启(以 Apache httpd 为例):
systemctl restart httpd
systemctl status httpd

确认启动时间在更新时间之后
5)Cli 验证关闭
php -i | grep session.upload_progress.enabled

php -i | grep memory_limit

[1] https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w
[2] https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp
[3] https://calif.io/php2shell/
[4] https://www.php2shell.com/
-END-
供稿 | openEuler安全委员会
编辑 | 丘云
校审 | 郑振宇、刘彦飞

关注我们,了解更多
▼
