2026年10月21日,PHP官方发布紧急安全更新,修复了两个由AI辅助发现的高危远程代码执行漏洞(CVE-2026-109618 和 CVE-2026-109619),合称“PHP2Shell”。攻击者无需身份验证即可通过构造特制HTTP请求触发内存错误,进而接管服务器。

‌受影响版本:‌

所有 PHP 5.4 及以上版本均受影响,尤其是使用 Apache mod_php 或 Nginx + PHP-FPM 架构的服务。

‌修复方案:‌

立即升级 PHP 至以下最新安全版本:

PHP 8.5.x → 升级至 ‌8.5.12‌

PHP 8.4.x → 升级至 ‌8.4.27‌

PHP 8.3.x → 升级至 ‌8.3.36‌

PHP 8.2.x → 升级至 ‌8.2.35‌

‌Linux (Ubuntu/Debian) 快速升级命令:

# 更新软件包列表
sudo apt update

# 升级 PHP 及相关模块(以 PHP 8.3 为例,请根据实际版本替换数字)
sudo apt install php8.3 php8.3-cli php8.3-fpm php8.3-common

# 重启 Web 服务以生效
sudo systemctl restart apache2
# 或者如果是 Nginx + PHP-FPM
sudo systemctl restart nginx
sudo systemctl restart php8.3-fpm

‌Linux (CentOS/RHEL) 快速升级命令:

# 启用 Remi 源(如果尚未启用)
sudo dnf install epel-release
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

# 升级 PHP(以 PHP 8.3 为例)
sudo dnf module reset php
sudo dnf module enable php:remi-8.3
sudo dnf update php

# 重启服务
sudo systemctl restart httpd
# 或者
sudo systemctl restart nginx
sudo systemctl restart php-fpm

临时缓解措施(仅当无法立即升级时):‌

在 php.ini 中设置 memory_limit = -1 可部分降低 CVE-2026-109618 的触发概率,但会增加内存耗尽风险,且无法防御 CVE-2026-109619。‌此方法不能替代补丁升级。

; php.ini
memory_limit = -1

注意:‌

PHP 8.1 及更早版本已停止维护,官方仅提供源码补丁,建议尽快迁移至受支持版本或由发行版提供商提供编译好的更新包。

升级后务必检查业务兼容性,并监控服务器日志是否存在异常访问。