官方漏洞链接:https://www.php.net/archive/2026.php#2026-10-21-5
CVSS v4.0:9.2 严重级别,无需登录,远程代码执行,攻击者发特制 HTTP 请求即可拿到服务器 PHP 进程权限,甚至在业务 PHP 代码还没运行之前就完成攻击;
mod_php(Apache)部署风险最高,PHP‑FPM、FrankenPHP、LiteSpeed、php‑cgi 全部受影响。 ✅ 唯一完整修复方式:升级 PHP;缓解措施只是降低攻击面,不能彻底消除风险PHP。
成因:PHP 发生内存耗尽 (OOM) 时,会用longjmp强行中断请求;中断发生时,请求内部数据结构只完成部分初始化。后续请求清理逻辑错误把未初始化 / 无效内存当成合法数据处理,造成内存破坏,最终 RCE。
memory_limit=-1,必须在 FPM pool / Apache php_admin_value 设置,业务代码不能覆盖;post_max_size,不需要上传设8M,需要上传最多32M,upload_max_filesize < post_max_size;成因:一个 HTTP 请求对应的内部状态,内存已经被 free 释放,但残留指针没有清零;同一个 worker 进程处理下一个新请求时,在正常初始化重置执行之前,就访问这块已经释放的旧内存(use‑after‑free),造成内存破坏 RCE。
这个漏洞一条关键利用链依赖
session.upload_progress.enabled = On(PHP 默认开启),也就是你之前问的配置项。
session.upload_progress.enabled=0⚠️注意:不能用
ini_set()、.user.ini,必须写 php.ini/ FPM pool 配置 / Apache 配置,重启 php‑fpm 全部 worker 进程,这会阻断该漏洞的 session 相关利用链,但不能阻断全部变种利用路径PHP。
fatal_error_backtraces=0;display_errors/error_reporting关闭报错对此漏洞无效。| 分支 | 不安全版本 | 修复版本 |
|---|---|---|
| PHP 8.5.x | <8.5.12 | 8.5.12 |
| PHP 8.4.x | <8.4.27 | 8.4.27 |
| PHP 8.3.x | <8.3.36 | 8.3.36 |
| PHP 8.2.x | <8.2.35 | 8.2.35 |
PHP8.1 及更早官方已经停止维护,没有官方更新;部分发行版 LTS 提供回移补丁,PHP 官方给了 7.4/8.0/8.1 最小化源码补丁供自行编译使用PHP。
session.upload_progress.enabled = 0(php.ini/FPM pool),重启 worker;post_max_size,WAF 拦截带PHP_SESSION_UPLOAD_PROGRESS字段的恶意 multipart 请求;攻击特征:请求为
multipart/form‑dataPOST,携带表单字段PHP_SESSION_UPLOAD_PROGRESS,正常业务极少出现该字段,WAF 可以优先拦截该特征流量腾讯云。
如果你需要,我可以给你一段命令快速检查当前 PHP 版本、打印session.upload_progress.enabled配置状态。
漏洞根源代码从 PHP 5.4 就存在,所以 7.x 全中;但是:PHP 官方已经不再给 7.x 发正式版本包PHP
| 漏洞版本 | 漏洞小版本号 | 最新版本 |
| PHP 8.5.x | <8.5.12 | 8.5.12 |
| PHP 8.4.x | <8.4.27 | 8.4.27 |
| PHP 8.3.x | <8.3.36 | 8.3.36 |
| PHP 8.2.x | <8.2.35 | 8.2.35 |
| PHP 7.0-7.4 | 所有版本 | 升级8.5.12、8.4.27、8.3.36、8.2.35 |

