1 、紧急升级(首选措施)
PHP 官方已发布修复版本。预期修复版本为:PHP 8.5.12 、8.4.27 、8.3.36 、8.2.35 (以 PHP 官方安全公告实际发布为准)。
升级操作要求:
1. 定位所有 PHP 实例:逐个清点服务器、容器镜像、虚拟机及第三方设备中内嵌的 PHP 运行时,记录版本号(可通过 php -v 获取)。
2. 升级至修复版本:根据业务所运行的 PHP 分支,分别升级至 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 ,并确认升级后版本号与官方修复版本一致。
3. 重启服务进程:升级完成后,重启 PHP-FPM 池与 Web 服务器进程,确保新运行时生效;对于容器化部署,需重新构建镜像并滚动更新。
4. 验证生效:通过实际请求确认运行中的 PHP 版本已更新,不能仅以文件替换完成作为依据。
使用操作系统发行版、托管服务或云厂商提供的 PHP 时,应立即向供应商确认其已包含上述修复版本的安全更新,并按其指引完成升级与重启。PHP 8.1 及更早版本不会获得官方修复,必须迁移至受支持的 PHP 8 分支,或确认供应商已提供回移补丁。
2 、升级前的临时缓解(仅限无法立即升级的场景)
如果因业务约束无法在修复发布后立即完成升级,应在升级窗口前采取以下临时缓解措施,但不得以缓解措施替代最终升级:
· 禁用 session.upload_progress:将 session.upload_progress.enabled 设置为 0 。该设置可在一定程度上减少攻击面,但 PHP 官方尚未确认其对该漏洞的完整防护效果。
· 启用严格会话模式:将 session.use_strict_mode 设置为 1 。需注意,若应用使用自定义会话处理器且未实现会话 ID 校验,该措施可能不生效。
· 收缩网络暴露面:对非公开的 PHP 应用,限制为仅可信网络或管理网络可访问;对无法及时升级的互联网暴露 PHP 应用,评估临时隔离或下线处置。
· PHP-FPM 特殊注意:上述会话配置需应用于每一个 serving pool ,并 reload worker 后通过实际请求验证生效配置。
3 、修复后的“假定失陷”检查
由于该漏洞为未经认证的 RCE ,且信息在官方修复发布前已提前泄露,修复发布后存在被快速利用的现实可能。完成 PHP 运行时升级后,建议立即开展以下检查:
· 排查 Web 服务器进程是否在非预期路径下启动了子进程(如 /bin/sh 、curl 、wget 等异常派生);
· 检查 Web 根目录及可写目录中是否出现新近创建或修改的可疑文件( webshell 常见落地位置);
· 审阅 Web 访问日志中是否存在针对 session.upload_progress 参数或异常 multipart 请求的可疑探测行为;
· 对曾暴露在互联网且未能及时升级的 PHP 实例,考虑按已失陷开展凭据轮换与主机取证。
来源:
https://mp.weixin.qq.com/s/Gpt2ouEwYiYjeQMmELvcTw