前言
近期,PHP 官方披露了严重的安全风险,影响范围覆盖了多个 PHP 运行版本。由于该风险涉及解释器底层,仅靠应用层代码难以完全规避。
为了保障业务系统的稳定与数据安全,建议所有 PHP 用户尽快将环境升级至官方发布的最新安全版本。本文提供了一套从“临时应急”到“永久修复”的完整操作指南。
一、 临时缓解与安全加固(升级前)
在正式完成版本升级前,可以通过以下手段降低攻击面。注意:临时措施不能替代官方补丁。
1. WAF 虚拟补丁防护
建议在业务入口处(如雷池 WAF 等安全设备)开启最新的虚拟补丁规则。在实际操作中,建议初期先开启“观察模式”,确认业务无误报后,再切换为“拦截模式”,以阻断已知的恶意请求特征。
2. PHP 配置层加固
可以通过禁用不必要的上传进度功能,来阻断部分利用路径。
在php.ini的[Session]段中配置:
session.upload_progress.enabled = 0修改后必须重启PHP-FPM 或 Apache 服务使配置生效。
3. 反向代理层拦截(按需)
如果你的业务完全不依赖文件上传,可以在 Nginx 层直接拒绝此类请求,牺牲上传功能换取绝对安全:
if ($http_content_type ~* "multipart") { return 403; }二、 永久修复:多环境版本升级步骤
官方已发布修复版本,升级是彻底消除安全隐患的唯一途径。
目标修复版本参考:PHP 8.2.35、8.3.36、8.4.27、8.5.12 及以上。
场景一:Ubuntu / Debian(通过 Ondřej Surý PPA)
sudoaptupdatesudoaptinstall-ysoftware-properties-commonsudoadd-apt-repository ppa:ondrej/phpsudoaptupdate# 以 8.3 为例安装sudoaptinstall-yphp8.3 php8.3-fpm php8.3-cli php8.3-curl php8.3-mbstring php8.3-xml php8.3-zip# 切换并重启服务sudosystemctl restart php8.3-fpm场景二:CentOS / RHEL(通过 Remi 仓库)
# 以 EL9 为例sudodnfinstall-yhttps://rpms.remirepo.net/enterprise/remi-release-9.rpmsudodnf module switch-to php:remi-8.3/commonsudodnfinstall-yphp php-fpm php-cli php-commonsudosystemctl restart php-fpmsudosystemctl restart httpd场景三:Docker 环境
⚠️严禁使用latest或大版本裸标签,必须锁定到具体的安全小版本:
FROM php:8.3.36-fpm重新构建并拉起:
dockerbuild-tmyapp:php83.docker-composeup-d三、 验证清单
- 执行
php -v确认 CLI 版本已达标。 - 访问
phpinfo()确认 Web 环境实际加载的版本一致。 - 测试业务核心功能(登录、上传)是否正常。
💡更多细节说明:
关于本次漏洞的底层机制分析(OOM、UAF),以及雷池 WAF 自定义规则的详细配置参数与正则特征,由于平台限制不便全面展开,感兴趣的朋友可以移步我的博客园查阅完整版:
👉完整版直达:www.cnblogs.com/zhoutuo/p/23415667