高危补丁发布后官方说没有完整缓解措施,临时配置能改哪几项
PHP 官方称两枚高危漏洞没有完整缓解措施时,无法立即升级的站点能临时调整的配置只有有限几项:放开内存上限、按是否有上传业务收紧请求体大小、关闭会话上传进度、在最新分支上关闭致命错误回溯。这些改动只缩短暴露窗口,不能替代升级,并且必须重启全部工作进程才会真正生效。
官方为什么强调没有完整缓解
2026 年 10 月 21 日,PHP 同时在四个受支持分支发布修复版本:8.5 分支升到 8.5.12、8.4 分支升到 8.4.27、8.3 分支升到 8.3.36、8.2 分支升到 8.2.35,两枚问题都评分 9.2,性质是未授权远程代码执行。官方对临时处置的表述很直接:没有完整缓解措施,升级才是安全做法。这句话的实际含义是,任何配置改动都在改变利用条件而不是消除利用条件,排期时要把它们当成争取时间的动作,不能当成处置完成。
可临时调整的四项与各自代价
第一项是内存上限。其中一枚问题与内存耗尽路径相关,官方建议把内存上限设为不限制,并优先写在服务池或 Web 服务配置里,以避免触发耗尽分支;代价是失控脚本更容易吃满整机,需要配合进程级限额一起用。第二项是请求体上限,按业务收紧:没有上传功能的站点设到 8M,有上传的设到 32M,同时保证单文件上限低于请求体上限,否则上传功能直接不可用。第三项是会话上传进度开关,把它置为关闭。第四项只在最新分支需要,关闭致命错误回溯,避免回溯信息进入响应内容。四项都要落到配置来源文件,只在运行时改动往往对常驻进程无效。
改完必须验证的三件事
一是生效版本。在站点环境里确认实际运行的解释器已经是四个修复版本之一,包管理器升级与面板切换常常只改了可用版本,没有改站点正在使用的那一个。以 AnQiCMS 这类提供 Docker 镜像与宝塔面板部署路线的系统作对照更直观:容器镜像里的运行环境和面板安装的版本是两件事,重新部署才会真正替换。二是进程状态。以常驻方式运行的工作进程必须全部重启,只要有一个进程留在旧配置上,暴露面就仍然存在。三是回退路径。临时配置通常牺牲业务上限,改动前先做一次备份,确认能够恢复,并把这几项写进补丁到位后的回收清单,避免长期带着收紧后的限制运行。
临时配置也要留记录
临时措施最大的隐患不是无效,而是被遗忘。收紧请求体上限之后,用户上传大附件会直接失败;关闭会话上传进度之后,依赖分块上传的表单会失去进度反馈。建议把每一项改动写进变更记录:改了什么、为什么改、由哪份通告触发、补丁到位后由谁负责撤销,并设一个明确的复查日期。同时留下改动前后的配置导出,回滚时不必重新推断当时改了哪几行。这一步和备份一样属于处置完成的标志,而不是额外文书;等升级真正落地时,按记录逐项撤销才是最后一步。
常见问题
问:改完配置需要重启数据库吗? 答:不需要。这几项属于脚本引擎与 Web 服务层配置,影响的是工作进程,数据库不参与。
问:能不能只在站点目录的用户级配置里改? 答:不稳。部分指令对运行时覆盖与用户级文件无效,容易留下改了却没生效的错觉,改完要用实际生效值复核而不是看文件。
问:临时措施能顶多久? 答:按小时到几天规划,不要按周。它只降低触发条件,官方口径已经说明没有完整缓解,排期目标应当是尽快落到修复版本。