php 官方安全团队在 10 月 21 日的紧急发布中确认了一个比想象中更棘手的漏洞:cve-2026-109618。它藏在内存管理路径上,当一次请求恰好在 memory_limit 耗尽的瞬间出错,内部会留下未初始化的数据,并被后续流程当作有效数据继续使用,最终造成内存破坏。更严重的是,在 apache mod_php 部署下,未认证的请求就能在应用代码执行之前触发它,官方在默认配置下已经完整演示了远程代码执行。

▲ 事件来源页面实时截图:php/php-src Security Advisories
漏洞原理:一次「恰到好处」的内存耗尽就够
这个漏洞的特殊之处在于触发条件是时机而不是特定输入:只要内存限制恰好在关键位置耗尽,全局状态就会指向上一份请求留下的内存。同一 worker 的后续请求会复用这块已经不可信的内存区域。官方安全公告将其与 CVE-2026-109619 并列评级 CVSS v4.0 9.2 CRITICAL,两者几乎覆盖了每一个 PHP 请求都会经过的核心路径。
影响范围与处置
影响 8.2 / 8.3 / 8.4 / 8.5 全部在维护分支,修复版本为 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35。官方措辞非常明确:无完整缓解措施,升级是唯一安全选择。仍在 PHP 7.4 / 8.0 / 8.1 的部署可以使用官方提供的最小源码 backport 自行编译。公网暴露的 mod_php 与 FPM 实例应最优先处理。
内存耗尽那一刻到底发生了什么
PHP 用 longjmp() 从内存耗尽(OOM)错误中跳出,以尽快终止当前请求。问题在于,请求内存在这个时刻可能仍处于「可达但未完全初始化」的状态:一旦此时有分配失败,PHP 未能正确结算提前退出的路径,请求内存便停留在非法状态,随后被当作有效数据继续使用。官方在 mod_php 下演示了从「一次恰到好处的内存耗尽」走到完整远程代码执行的链路,且不需要任何认证。
排查与加固要点
先确认线上版本:php -v 与 phpinfo() 里的版本号需不低于 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35。共享主机与容器镜像尤其要检查基础镜像是否仍带旧版;OPcache 在升级后需重启 PHP-FPM 或 Apache 才能生效。若短期内无法升级,应优先减少 mod_php 的公网暴露面,把请求交给独立的 FPM 池并限制可触达的入口。
修复补丁(官方提交)
该问题由 php-src 官方提交 3584a98bda0f 修复(2026-10-18),提交说明为「Avoid state corruption via bailout」。改动涉及 5 个源码/测试文件,核心变更如下:
Zend/zend.c
@@ -737,6 +737,8 @@ static void compiler_globals_ctor(zend_compiler_globals *compiler_globals) /* {{
compiler_globals->map_ptr_base = ZEND_MAP_PTR_BIASED_BASE(base);
memset(base, 0, compiler_globals->map_ptr_last * sizeof(void*));
}
+
+ compiler_globals->interned_strings_fallible = false;
}
/* }}} */
@@ -809,6 +811,7 @@ static void executor_globals_ctor(zend_executor_globals *executor_globals) /* {{
executor_globals->pid = 0;
executor_globals->oldact = (struct sigaction){0};
#endif
+ memset(&executor_globals->delayed_oom, 0, sizeof(executor_globals->delayed_oom));
}
/* }}} */
@@ -1307,6 +1310,8 @@ ZEND_API void zend_deactivate(void) /* {{{ */
zend_map_ptr_reset();
}
+ zend_mm_oom_info_dtor(&EG(delayed_oom));
+
#if GC_BENCH
fprintf(stderr, "GC Statistics\n");
fprintf(stderr, "-------------\n");
▲ 补丁片段摘自 php-src 官方仓库该提交
完整补丁与测试用例可在 php-src 仓库该提交页面查看:https://github.com/php/php-src/commit/3584a98bda0f2c0d367255b046798b0d3a221a19

▲ 官方公告页配图

▲ 官方修复提交页面截图
关键信息
| 项目 | 内容 |
|---|---|
| 类目 | 安全漏洞 |
| 级别 | 紧急 |
| 日期 | 2026-10-21 |
| 关联编号 | CVE-2026-109618 / GHSA-w8hw-w9fx-j79w |
| 影响范围 | 8.2 / 8.3 / 8.4 / 8.5 全部分支 |
| 核验状态 | 已官方确认 |
| 修复提交 | 3584a98bda0f(php-src) |
来源:https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w


















