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 及更早版本已停止维护,官方仅提供源码补丁,建议尽快迁移至受支持版本或由发行版提供商提供编译好的更新包。
升级后务必检查业务兼容性,并监控服务器日志是否存在异常访问。