CVE-2026-109618 是什么漏洞?
CVE-2026-109618 是 PHP2Shell 两个漏洞中的第一个,PHP 官方安全公告编号 GHSA-w8hw-w9fx-j79w,标题是“RCE via OOM corruption”(内存不足导致内存破坏,进而远程代码执行),官方 CVSS 4.0 评分 9.2(严重)。
用不太技术的话说:PHP 每处理一个网页请求,都要先把请求里的数据整理好放进内存。如果整理到一半内存用尽(OOM,out of memory),PHP 会中断并做清理。问题出在这次清理——它会去处理那些还没整理完的数据,把内存弄乱。攻击者如果能精确控制这个过程,就可能让服务器执行他想要的代码。
本站只讲到原理层面,不提供任何复现或利用细节。
CVE-2026-109618 影响哪些 PHP 版本?
PHP 8.2 到 8.5 中低于下列版本的都受影响:
| 分支 | 首个修复版本 |
|---|---|
| PHP 8.2 | 8.2.35 |
| PHP 8.3 | 8.3.36 |
| PHP 8.4 | 8.4.27 |
| PHP 8.5 | 8.5.12 |
| 8.1 及更早 | 无新发行版(7.4、8.0、8.1 有官方源码补丁) |
研究方称至少有一个问题可以追溯到 PHP 5.4。7.4、8.0、8.1 没有新的官方发行版,但 PHP 官方提供了最小源码回移补丁,见 PHP 停止维护版本。
Ubuntu 等发行版已在各自的安全公告里为这个 CVE 发布了修复包,包版本号可能仍显示旧的 PHP 版本:
| 供应商 | 版本 | 软件包 | 已修复的包版本 | 状态 |
|---|---|---|---|---|
| Ubuntu | 22.04 | php8.1 | 8.1.2-1ubuntu2.28 | 已修复 |
| Ubuntu | 24.04 | php8.3 | 8.3.6-0ubuntu0.24.04.13 | 已修复 |
| Ubuntu | 26.04 | php8.5 | 8.5.4-0ubuntu1.5 | 已修复 |
| Ubuntu | 26.10 | php8.5 | 8.5.9-0ubuntu2.1 | 已修复 |
| Debian | 13 | php8.4 | 8.4.27-1~deb13u1 | 已修复 |
| Docker Official Images | — | php | — | 未核实 |
| 宝塔 | — | PHP | — | 未核实 |
| XServer | — | PHP | — | 未核实 |
| ConoHa WING | — | PHP | — | 未核实 |
| ロリポップ! | — | PHP | — | 未核实 |
| 1Panel | — | 1panel/php | — | 未核实 |
核实于2026年10月21日至2026年10月22日。
CVE-2026-109618 和 CVE-2026-109619 有什么区别?
两个漏洞一起公布、一起修复,合称 PHP2Shell:
- CVE-2026-109618:问题出在内存不足时的清理过程。
- CVE-2026-109619:问题出在请求之间残留的全局状态,详见 CVE-2026-109619。
修复版本相同,升级一次两个都修好,不需要分开处理。
CVE-2026-109618 怎么修复?
升级 PHP 到所在分支的修复版本或更高,或者安装发行版包含该修复的软件包;然后重启 PHP-FPM 或 Apache,让旧的 worker 全部退出;最后回到网站确认版本。
不同环境的具体做法:
- 自己的服务器:Ubuntu/Debian 升级 PHP、Docker PHP 镜像
- 面板与主机:宝塔 PHP、cPanel 切换 PHP 版本、PHP2Shell 修复(含主机商工单模板)
CVE-2026-109618 有临时缓解办法吗?
有,但都不是完整修复。PHP 官方针对 CVE-2026-109618 给出了两项临时设置:
memory_limit = -1:去掉 PHP 自己的内存上限,避开“超过内存上限”这条触发路径。但底层内存分配失败仍可能触发漏洞;要设成应用代码改不回去的方式,并留意服务器内存,官方提醒不要用系统层面的内存限制(RLIMIT_AS、RLIMIT_DATA)来代替。- 调低
post_max_size:不需要上传的网站设 8M,需要上传的设 32M,减少内存不足路径的暴露面,代价是更大的上传会失败。
另外,官方针对 CVE-2026-109619 给出的“关闭 session.upload_progress.enabled”也建议一起做,见 CVE-2026-109619。所有设置都要写进主配置并重启全部 PHP worker。
怎么知道我的网站有没有中 CVE-2026-109618?
先判断有没有漏洞:查清网站实际运行的 PHP 版本,和上面的修复版本比较。可以直接用 PHP2Shell 检测。
再判断有没有被利用:目前没有官方公布的、能确定归因的入侵特征。Wiz 研究团队建议留意的内存超限报错、HTTP 500、worker 异常频繁重启只能当线索,不能证明被攻击,也不能用“没看到”证明没被攻击。见 网站被黑检测。
依据哪些来源?
- PHP 官方安全公告:RCE via OOM corruption
- The PHP Group:PHP 安全公告
- Wiz Research:PHP2Shell 原始研究
- Wiz Research:PHP2Shell 监控建议(X)
- Canonical:Ubuntu 安全页面
- 腾讯云:PHP “php2shell” 远程代码执行漏洞风险通告
来源
本页的核心事实(修复版本、CVE 详情、发行版软件包、官方机构的提醒)都来自官方来源;研究报告、新闻和社区讨论已分别标注。
- RCE via OOM corruption官方 The PHP Group
- Security advisory: Critical remote code execution vulnerabilities, update now官方 The PHP Group
- PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the Internet研究 Wiz Research
- PHP2Shell monitoring guidance thread研究 Wiz Research(X)
- CVE-2026-109618厂商 Canonical
- 【安全通告】PHP "php2shell" 远程代码执行漏洞风险通告(CVE-2026-109618, CVE-2026-109619)厂商 腾讯云