影响核心PHP运行环境的两个严重远程代码执行(RCE)漏洞已被披露,编号分别为CVE-2026-109618和CVE-2026-109619。这两个漏洞是云安全研究机构Wiz统称为PHP2Shell的核心PHP漏洞群中的RCE组成部分。根据Wiz的数据,PHP2Shell包含多个严重漏洞——从类似Heartbleed的内存泄露到未经身份验证的RCE——波及过去十年中发布的每一个PHP版本(最早可追溯至PHP 5.4),并影响支撑着全球70%网站的Web服务器。系统管理员必须立即排查并升级Web工作进程至官方修复版本,普通互联网用户在访问网络服务时也应采取基础防护措施。
本文将深入分析这两处内存破坏漏洞的技术底层成因,梳理各分支版本的受影响情况与官方安全补丁,并为普通网络用户提供防范建议,为运维工程师提供处置指引。
漏洞成因:php2shell漏洞组合解析
根据美国国家漏洞数据库(NVD)于2026年10月21日发布的安全通告,这两个高危漏洞存在于PHP底层Zend Engine的内存分配器及请求处理生命周期中。
当Web请求处理过程中发生未捕获的严重错误或内存耗尽(OOM)时,PHP依赖底层的longjmp机制强行终止当前请求并回退执行栈。在尚未修复的版本中,这种异常中断破坏了内部内存追踪结构,引发两种危险状态:
- 未初始化内存复用(CVE-2026-109618): 当内存分配在请求中间阶段失败时,分配给请求变量的内存块仍处于未初始化状态。随后工作进程在清理阶段如果读取或分支执行该内存,将导致堆损坏并触发远程代码执行。
- 陈旧全局状态引用(CVE-2026-109619): 某些临时指向请求堆内存的全局状态指针在异常退出后未被正确重置。当同一个工作进程处理后续请求时,会访问已经被释放的旧内存,使攻击者能够劫持应用程序控制流。
由于PHP工作进程(例如PHP-FPM或常驻应用容器)在重启前通常会连续处理大量请求,远程攻击者可通过构造特制的HTTP请求消耗内存,在无需身份认证的情况下破坏工作进程状态并获取底层操作系统指令执行权限。
受影响PHP版本及官方修复发布
PHP开发团队已于2026年10月22日为所有维护中的分支发布了官方修复版本。各组织应尽快根据下表排查服务器环境:
| 分支 | 受影响版本 | 修复版本 | 支持状态 |
|---|---|---|---|
| PHP 8.5 | 8.5.0 至 8.5.11 | 8.5.12 | 积极支持(Active support) |
| PHP 8.4 | 8.4.0 至 8.4.26 | 8.4.27 | 积极支持(Active support) |
| PHP 8.3 | 8.3.0 至 8.3.35 | 8.3.36 | 仅安全修复(Security fixes only) |
| PHP 8.2 | 8.2.0 至 8.2.34 | 8.2.35 | 仅安全修复(2026年12月31日终止) |
| PHP 8.1及更早版本 | 全部版本 | 无 | 已停止维护(End of Life) |
根据PHP官方支持周期规范,处于积极支持状态的分支(PHP 8.4与PHP 8.5)会同时获得常规错误修复与安全补丁。处于仅安全修复状态的分支(PHP 8.2与PHP 8.3)仅接收关键安全补丁;需要注意,PHP 8.2将于2026年12月31日正式停止所有维护。
运行PHP 8.1或更早版本的环境将永久受到该漏洞影响,因为已淘汰分支不再接收安全回溯移植。相关企业应立即制定迁移计划。
这对普通用户意味着什么
根据Wiz公布的研究数据,PHP支撑着全球约70%的网站,涵盖常见的内容管理系统、电商购物平台及各类在线服务。即使您不直接管理服务器,日常使用的数字化服务也很可能依赖于该技术栈。
虽然普通用户无法直接修复远程Web服务器,但遵循以下网络安全原则能够显著降低风险:
- 关注平台安全通知: 如果您使用的在线服务或购物网站发布了安全更新或数据泄露通知,请立即登录并更改该平台的账户密码。
- 切勿跨站复用相同密码: 在多个网站使用同一密码具有极大连带风险。一旦某处Web服务器被攻陷且凭据泄露,攻击者往往会利用撞库攻击入侵您的电子邮箱或金融账户。请为每个平台设置独立且高强度的密码。
- 启用双重身份验证(2FA): 为所有支持该功能的应用开启双重验证,优先使用基于应用程序的动态验证码或物理安全密钥,尽量避免使用短信验证码。这能在密码泄露时仍有效防止未授权登录。
- 警惕虚假更新提示: 入侵Web服务器的攻击者常篡改网页模板,植入伪造的浏览器更新或播放器更新提示弹窗。切勿通过非官方来源下载安装程序,任何软件更新均应通过操作系统应用商店或浏览器内置设置进行。
- 保护网络传输安全: 在使用公共Wi-Fi时,VPN能够在您的设备与VPN服务器之间建立加密通道,防止同局域网内的其他人员窥探数据传输。下载 VPNRice。
服务器管理员处置清单
管理Web主机、测试集群或云端服务器的团队应立即执行以下处置方案:
1. 升级系统软件包并核对发行版安全通告
如果您的服务器使用Linux发行版官方仓库(如Debian或Ubuntu),软件包维护者通常会将安全补丁回溯移植(backport)到现有的稳定软件包中,而不会递增上游的小版本号(例如即使已完成修复,系统中的PHP基础版本号可能仍显示为8.2.26或8.4.15)。
首先,更新本地软件源索引并升级正在运行的PHP软件包(以下命令中的包名为示例,请根据您仓库提供的PHP实际版本进行调整):
sudo apt-get update
sudo apt-get --only-upgrade install php8.4-fpm php8.4-cli php8.4-common
接下来,核对已安装软件包的发布版本号与发行版官方发布的安全通告(如Debian安全通告DSA或Ubuntu安全公告USN):
apt-cache policy php8.4-fpm
查看软件包更新日志确认CVE修复补丁是否已被打包包含:
apt-get changelog php8.4-fpm | head -n 20
只有当您直接从php.net官方源码编译、使用Ondřej Surý的PPA仓库或运行官方Docker容器镜像时,终端中php -v的输出才会直接对应上游版本号8.2.35、8.3.36、8.4.27或8.5.12。
2. 重建容器镜像
主机系统升级不会自动变更已打包的容器层。如果采用Docker部署,请检查Dockerfile基础镜像:
FROM php:8.4.27-fpm-alpine
使用无缓存参数重新构建镜像以清除旧版本缓存:
docker build --no-cache -t web-app:latest .
3. 配置边缘网络防御
在各节点完成升级之前,可通过反向代理或Web应用防火墙检查传入流量。适当限制请求标头长度,限制高频分块文件上传,并在请求抵达PHP工作池前拦截格式异常的连接。
及时更新软件组件并保持良好的账户安全习惯,是抵御高危Web漏洞最有效的保障。



