发布时间:2026-10-22
# PHP 高危漏洞通告与自查指引
**CVE-2026-109618 / CVE-2026-109619|CVSS v4.0 9.2(Critical)|PoC 已公开**
厦门大学信息与网络中心 · 网络安全运营 | 2026-10-21
## 一、漏洞说明
PHP 官方安全团队修复了 PHP 引擎核心的两个漏洞,两者都允许**未经身份验证**的远程攻击者执行任意代码(Pre-Auth RCE),CVSS v4.0 评分均为 9.2。相关技术细节与验证代码已在公开渠道出现。
| 编号 | 类型 | 说明 |
|------|------|------|
| CVE-2026-109618(GHSA-w8hw-w9fx-j79w) | 内存耗尽(OOM)导致内存损坏 | 请求处理中发生内存耗尽,清理流程把未初始化的内存当作合法对象解析销毁,进而可执行任意代码 |
| CVE-2026-109619(GHSA-6wmf-4rv5-p3rp) | 陈旧全局状态(Stale Global State)残留 | 请求的全局状态在内存释放后残留,被同一 Worker 进程的后续请求复用,造成状态污染与代码执行 |
受影响环境:PHP-FPM、Apache mod_php、FrankenPHP、LiteSpeed、php-cgi —— 即所有对外提供 Web 服务的 PHP 部署方式。
> **漏洞在请求到达网站代码之前、在 PHP 引擎内部触发。修改网页代码、升级 CMS 或插件、在应用层加校验都无法防御,把 PHP 运行时升级到已修复版本即可解决。**
## 二、已修复版本
| 分支 | 修复版本 |
|------|----------|
| PHP 8.5 | 8.5.12 |
| PHP 8.4 | 8.4.27 |
| PHP 8.3 | 8.3.36 |
| PHP 8.2 | 8.2.35 |
| PHP 8.1 / 8.0 / 7.x / 5.x | 官方已停止维护(EOL),无该分支补丁,建议迁移到 8.2+ |
## 三、自查:确认自己的系统是否需要升级
```bash
# 1) 主机上看运行时版本
php -v
# 2) 看包管理器安装的 PHP 包(Debian/Ubuntu)
dpkg -l | grep -i php
# 2) RHEL/CentOS/openEuler
rpm -qa | grep -i php
# 3) 从外部看站点是否暴露版本
curl -sI https://你的域名/ | grep -i 'x-powered-by\|server'
# 4) 容器部署:进入容器看镜像内版本
docker exec 容器名 php -v
```
| 自查结果 | 建议 |
|----------|------|
| 8.5 ≥ 8.5.12 / 8.4 ≥ 8.4.27 / 8.3 ≥ 8.3.36 / 8.2 ≥ 8.2.35 | 已含修复,无需处理 |
| 8.2 / 8.3 / 8.4 / 8.5 但低于上述版本 | 升级到对应分支的修复版本 |
| 8.1 / 8.0 / 7.x / 5.x | 官方已无补丁,建议规划迁移到 8.2+ |
| 服务器上没有 PHP / 站点是纯静态页 | 不受影响 |
## 四、升级方法
1. 用系统包管理器升级(`apt-get` / `dnf` / `yum`),或重新拉取带修复版本的基础镜像重建容器。
2. 升级后**重启 PHP 与 Web 服务**,让内存中的旧进程退出:
```bash
systemctl restart php-fpm # 实际服务名可能是 php8.2-fpm / php-fpm8.2 等
systemctl restart apache2 # 或 nginx(用 php-fpm 时同样要重启 php-fpm)
```
3. 再执行一次 `php -v` 确认版本,`ps aux | grep php-fpm` 确认 worker 已重启。
4. 可选:`php.ini` 中设置 `expose_php = Off`,避免对外暴露版本号。
---
*本指引依据 PHP 官方安全公告整理,供校内处置使用。*