PHP 8.3.36 是修复 CVE-2026-109619 的强制升级版本,必须升级至此或更高版本以规避内存状态残留导致的远程代码执行与敏感信息泄露风险,且需验证二进制更新及依赖组件适配。

PHP 8.3.36 是官方为修复 CVE-2026-109619 而发布的紧急安全版本,**必须升级至此版本或更高(如 8.3.37+)才能彻底规避该内存状态残留导致的远程代码执行与敏感信息泄露风险**。这不是可选优化,而是生产环境强制动作。
确认当前版本是否在漏洞影响范围内
运行 php -v 查看实际版本号,重点比对小版本号:
- 若输出为
PHP 8.3.35或更低(如8.3.0~8.3.35),则明确处于受影响范围 - 若输出含
8.3.36或更高(如8.3.37、8.4.27),且编译时间在 2026-10-22 之后,则已修复 -
注意:仅靠
php --version不够,需检查phpinfo()页面中的Configure Command行,确认未被第三方包(如某些 Docker 镜像)打过“伪补丁”而实际未更新核心二进制
升级到 8.3.36 的实操路径
不要依赖系统包管理器默认源(如 Ubuntu 的 apt 或 CentOS 的 yum),它们通常滞后。直接使用官方发布渠道:
修复 Core bailout 状态损坏安全问题,以及 BZ2、DOM、PDO、Opcache/JIT 内存与执行错误,改进 Unicode 字素处理、URL 解析、TLS 流状态、信号分发及会话错误处理。
- 从 windows.php.net(Windows)或 php.net(Linux/macOS)下载源码包或预编译二进制
- Linux 编译时务必复用原有
./configure参数(可用php-config --configure-options提取),否则可能丢失pdo_mysql、opcache等关键扩展 - 升级后立即验证:
php -r "echo json_validate('{}') ? 'ok' : 'fail';"—— 若报错说明扩展未加载成功;若返回ok,再运行php -m | grep opcache确认缓存模块就位
升级后仍需检查的隐藏风险点
漏洞修复只解决 PHP 解释器层的问题,但业务代码可能放大风险:
立即学习“PHP免费学习笔记(深入)”;
- 所有调用
json_decode()后未检查json_last_error()的地方,应尽快替换为json_validate()—— 这是 8.3.36 中最易被忽略的加固点 - 若项目使用 Hyperf 3.x,确认其
hyperf/json组件已同步升级至 v3.0.49+,旧版中自定义 JSON 解析逻辑可能绕过新内核的校验路径 - 任何捕获
Fatal error或Allowed memory size exhausted后继续执行的异常处理逻辑,必须重审——CVE-2026-109619 正是利用这类错误后的不安全内存重用
真正的难点不在升级动作本身,而在于验证是否“真正生效”:既要确认 PHP 二进制已更新,也要确保所有依赖组件、错误处理链路、JSON 解析入口都适配了新版本的行为边界。一次看似简单的版本号变更,背后是整条请求生命周期的安全重校准。


















