CVE-2026-109619
约 4 分钟阅读
- PHP 核心
php-src的跨请求遗留全局状态,官方标题为RCE via stale global state - CVSS v4.0:9.2 Critical;NVD 另给 CVSS v3.1 9.8 Critical,评分版本和攻击复杂度不同,应分别引用
- 受影响版本:PHP 8.2
<8.2.35、8.3<8.3.36、8.4<8.4.27、8.5<8.5.12 - 修复版本:PHP 8.2.35、8.3.36、8.4.27、8.5.12;旧版本需核对发行版或 LTS 回补
- 资料核对:2026-10-22;未运行 PoC、漏洞环境、扫描器或利用请求
成因与利用条件
PHP worker 的全局状态可能暂时指向某次请求拥有的内存。请求中发生 fatal error、OOM、parse/compile failure、require 失败、执行超时,或退出阶段重新产生诊断时,清理可能未完成,留下指向已释放 request memory 的引用。
后续请求必须由同一个持久 worker处理,并在正常 request initialization 之前访问该 stale state,才进入公开描述的 UAF 路径:
请求 A 发布 request-owned state
→ 异常中断或退出期诊断使清理未完成
→ 请求 A 内存释放,但 worker 全局引用仍存在
→ 同一 worker 处理请求 B
→ 初始化前的操作消费旧引用
→ use-after-free / 内存泄露 / RCE已公开的 producer / consumer 包括:
- PHP 8.5
fatal_error_backtraces路径:fatal error 保存请求回溯,后续早期诊断消费旧状态;mod_php RCE 已报告 session.upload_progress路径:上传进度在普通 session 初始化前访问 session/decoder 状态;默认启用,不要求应用调用session_start()- mod_php 的
.htaccess、php_value、php_flag、php_admin_*等目录配置可在php_request_startup()前产生诊断
影响与 SAPI 边界
| 运行方式 | 公开证据与限制 |
|---|---|
Apache mod_php | fatal backtrace 和 session lifecycle 路径均有未认证 RCE 演示声明 |
| PHP-FPM | session lifecycle 路径有 RCE 演示声明;启动失败会退出 child,不能复用该失败请求,但启动成功后的应用操作仍可能发布状态并由后续请求消费 |
| LSAPI | 早期环境 INI 是条件入口,具体配置和应用路径待验证 |
| FrankenPHP | 默认配置下未建立等价早期 INI consumer,不代表其他应用或扩展路径免疫 |
- 多 worker、负载均衡和 worker 回收会降低 producer / consumer 命中同一 worker 的概率,但不是修复
- 影响通常是 Web worker 权限下的内存泄露或代码执行,不自动等于 root、容器逃逸或宿主机控制
display_errors=Off、error_reporting或@只能影响展示/记录,不能阻止初始化前访问 stale state
修复与缓解
- PHP 8.5 分支共同修复 commit:
31c0ea7d7ff1d1fccb6492e52dab544011628065GitHubphp/php-src/commit/31c0ea7d7ff1d1fccb6492e52dab544011628065,标题Avoid state corruption via bailout,同时修复本 CVE 和 CVE-2026-109618 - 修复发行标签
php-8.5.12指向136e049ac10b032c83018e65b63b6df858943750 - PHP 项目为 7.4、8.0、8.1 提供了最小源码回补;发行版或 LTS 厂商可能另有回补,旧版本需逐项核对
- 完整修复是升级到含补丁的发行版并重启所有 PHP worker;仅更新磁盘上的包而保留旧 worker 不能证明已经生效
- 临时降低已知路径风险:管理配置中关闭
session.upload_progress.enabled并重启 worker;PHP 8.5 可关闭fatal_error_backtraces - 这些配置只覆盖已知 producer/consumer,不能作为通用缓解;清理过时 INI、修复攻击者可达 fatal/timeout 也不能代替升级
PoC 与检测
- PHP 安全团队报告在 mod_php、PHP-FPM 上有未认证 RCE 演示;Wiz 报告 fatal backtrace、OPcache 等实例及 CMS 演示;本笔记未独立运行验证
- 公开候选仓库:Zer061/CVE-2026-109618GitHubZer061/CVE-2026-109618PHP 核心 的 OOM(Out of Memory)状态处理错误,官方标题为 · CVSS v4.0:9.2 Critical;NVD 另给 CVSS v3.1 9.8 Critical,评分版本和攻击复杂度不同,应分别引用 · 受影响版本:PHP 8.2 、8.3 、8.4 、8.5笔记:CVE-2026-109618,固定 commit
8508dbc910609e78cd8475bd3dd34b1c65585a66;poc1_109619.py仅作静态资料,不代表可执行或完整 RCE - Snort SID
1:67360的官方规则文档关联本 CVE,匹配 multipart、默认 upload-progress marker 和相关 header;规则存在不等于利用成功 - Cloudflare 声称在披露前观察到 PHP2Shell 攻击尝试和载荷变异,并部署 WAF 防护;WAF 是额外防线,不能代替升级
- Nuclei issue #17469GitHub Issueprojectdiscovery/nuclei-templates#17469 查询时仍是 open 的模板请求,不能视为已发布模板
- 观察线索:multipart、初始化前 warning/fatal/timeout、memory exhaustion、重复 HTTP 500、异常
PHPSESSID、worker churn 和 PHP/Apache worker 派生 shell;缺少这些日志不能排除利用 host-checker --integrity-only不能检查 PHP 运行时状态、请求链、worker 行为或攻击后进程
参考
- CVE Record:CVE-2026-109619GitHub 文件CVEProject/cvelistV5/cves/2026/109xxx/CVE-2026-109619.json
- PHP GHSA-6wmf-4rv5-p3rp:RCE via stale global stateGitHubphp/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp
- PHP 2026 官方发布公告
- PHP 安全团队 oss-security 公告
- NVD:CVE-2026-109619链接nvd.nist.gov/vuln/detail/CVE-2026-109619PHP 核心 的跨请求遗留全局状态,官方标题为 · CVSS v4.0:9.2 Critical;NVD 另给 CVSS v3.1 9.8 Critical,评分版本和攻击复杂度不同,应分别引用 · 受影响版本:PHP 8.2 、8.3 、8.4 、8.5笔记:CVE-2026-109619
- Wiz:PHP2Shell
- Cloudflare:PHP2Shell WAF 防护
- Snort SID 1
关联信息
反向链接、本文链接的其他页面和外部资料。
参考资料
GitHub5 条
- CVEProject/cvelistV5/cves/2026/109xxx/CVE-2026-109619.jsongithub.com/CVEProject/cvelistV5/blob/28ded261613796661da064778d6320c5fbf35eb3/cves/2026/109xxx/CVE-2026-109619.json
- php/php-src/commit/31c0ea7d7ff1d1fccb6492e52dab544011628065),标题github.com/php/php-src/commit/31c0ea7d7ff1d1fccb6492e52dab544011628065)%EF%BC%8C%E6%A0%87%E9%A2%98
- php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rpgithub.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp
- projectdiscovery/nuclei-templates#17469github.com/projectdiscovery/nuclei-templates/issues/17469
- Zer061/CVE-2026-109618github.com/Zer061/CVE-2026-109618
其他外链6 条
- blog.cloudflare.com/php-vulnerabilities-waf-protectionblog.cloudflare.com/php-vulnerabilities-waf-protection
- nvd.nist.gov/vuln/detail/CVE-2026-109619nvd.nist.gov/vuln/detail/CVE-2026-109619
- snort.org/rule_docs/1-67360snort.org/rule_docs/1-67360
- www.openwall.com/lists/oss-security/2026/10/21/7www.openwall.com/lists/oss-security/2026/10/21/7
- www.php.net/archive/2026.phpwww.php.net/archive/2026.php
- www.wiz.io/blog/php2shell-php-rcewww.wiz.io/blog/php2shell-php-rce