ONCALL://19
INC-03 · PHP CVE

PHP 双 RCE:CVE-2026-109618 与 CVE-2026-109619

PHP 在 2026-10-21 修复两个远程代码执行漏洞,影响 5.4 至 8.5.11,包括 PHP-FPM。8.1 及更旧的分支没有上游修复版。

INC-03严重直接命中软件漏洞P0立即披露 2026-10-21
段子原句“PHP-FPM 7.3(刚花了几周时间从 5.6 升级上来)的源站”
编号
CVE-2026-109618CVE-2026-109619
严重度
CVSS 4.0 9.2(两项)
利用状态
有公开 PoC有公开 PoC:已有公开 PoC。未发现在野利用的可靠证据。
对段子公司
PHP 5.4 至 8.5.11 都受影响。7.3 和 5.6 都在范围内,而且上游不给这两个分支修复。花几周做完的升级没有解决问题。
影响范围
影响 PHP 5.4 至 8.5.11。PHP 安全团队只给 7.4、8.0、8.1 提供最小源码回补,7.3 和 5.6 没有。官方未公布受影响服务器数。
修复版本
  • →8.5.12、8.4.27、8.3.36、8.2.35
  • →7.4、8.0、8.1 有官方最小源码回补
  • →7.3、5.6 无上游修复
处置清单见处置顺序 · P0

结论

2026年10月21日,PHP披露并修复两个CVSS 4.0为9.2的严重远程代码执行漏洞。[1] [2]漏洞影响PHP 5.4至8.5.11,也包括PHP-FPM;但PHP 8.1及更旧分支没有PHP上游正式修复版。[1] [3]未发现可靠证据证明攻击者已在野利用;当时已有公开PoC。[2] [4]

事件经过

PHP团队于10月20日预告次日发布安全更新,并称两个漏洞均为CVSS 4.0 9.2。[5]团队于10月21日14:00 UTC发布PHP 8.3.36公告。[6]CERT-EU记录正式修复于10月21日13:30 UTC发布。[2]PHP将两项漏洞分别编号为CVE-2026-109618和CVE-2026-109619。[1] [2]其GHSA编号分别为GHSA-w8hw-w9fx-j79w和GHSA-6wmf-4rv5-p3rp。[1] [2]

技术细节

CVE-2026-109618源于内存耗尽处理期间的请求状态损坏。[1] [2]PHP用longjmp()处理memory_limit超限,并中断当前请求。[2]若中断发生在请求数据初始化中途,清理代码可能误认无效数据为有效数据。[2]清理操作可能释放未初始化内存,而其内容可能来自攻击者可控的先前分配。[2]

CVE-2026-109619源于请求级内部状态在释放后仍保留。[1] [2]同一工作进程处理后续请求时,可能在正常初始化前使用该陈旧状态。[2]致命错误等情形可能触发该路径。[2]两项漏洞均可能导致未认证远程代码执行。[1] [2]

漏洞影响所有处理网络请求的PHP部署方式,包括PHP-FPM、mod_php、php-cgi、FrankenPHP和LiteSpeed。[1] [2]PHP称mod_php风险最高,因为示范攻击可在应用代码运行前触发。[1] [2]现有证据没有指出必须使用某种NGINX与PHP-FPM参数组合。[1] [2]因此不能把本次漏洞等同于CVE-2019-11043的特定NGINX配置利用条件。

影响范围

Google Cloud与CERT-EU称受影响版本为PHP 5.4至8.5.11。[3] [2]官方修复版为PHP 8.5.12、8.4.27、8.3.36和8.2.35。[1] [3]PHP 8.1及更旧版本已停止上游维护,不会由PHP项目发布修复版。[1] [3]PHP安全团队因严重性提供了PHP 7.4、8.0和8.1的最小源代码回补。[1] [2]PHP 7.3和5.6未列入这些回补分支。[1] [2]部分发行版或长期支持供应商可能自行回补旧分支;具体包和版本需向供应商核实。[1] [2]

官方及核实的安全公告没有给出受影响服务器、用户、下载量或经济损失总数。[1] [2] [3]加拿大网络安全中心称互联网暴露的PHP服务器风险较高。[4]因此本报告不推算部署数量或实际受害范围。

时间线

  1. 2026-10-20 19:33:47 UTC
    PHP团队预告次日安全发布。[5]
  2. 2026-10-21
    加拿大网络安全中心发布警报,说明有PoC但未发现活跃利用。[4]
  3. 2026-10-21
    CERT-EU发布公告,并称PoC已开始流传。[2]
  4. 2026-10-21 13:30 UTC
    CERT-EU记载PHP发布修复版本。[2]
  5. 2026-10-21 14:00:57 UTC
    PHP发布PHP 8.3.36公告。[6]

修复与缓解

首选方案是升级到对应的受支持PHP修复版本。[1] [2]旧分支应升级,或确认操作系统供应商已提供并安装回补版本。[1] [2]PHP官方称临时设置只能降低特定攻击路径风险,不能替代升级。[1] [2]

针对CVE-2026-109618,官方建议在可行时设置memory_limit=-1。[1]此设置需在FPM池等应用不可覆盖的位置生效。[1]同时降低post_max_size,并在代理或Web服务器限制请求体和多部分内容。[1] [2]优先用容器或cgroup作为内存边界;不要用RLIMIT_AS或RLIMIT_DATA替代。[1] [2]

针对CVE-2026-109619,可关闭session.upload_progress.enabled并重启工作进程。[1]PHP 8.5还可关闭fatal_error_backtraces,但只阻断已确认的一条利用路径。[1]这些措施均不构成完整修复。[1] [2]无法立即修复时,应隔离互联网可访问应用,并检查Web、应用及主机日志。[2] [4]

对段子中公司的影响

假设该公司运行原版PHP-FPM 7.3,则版本处于受影响范围,且没有PHP上游修复版。[1] [3]PHP 5.6同样在已披露的受影响范围内,也已停止上游维护。[3]升级到7.3不代表已规避本次漏洞;这两项缺陷覆盖多个旧分支。[1] [3]若PHP-FPM处理来自公网的请求,攻击者可通过请求尝试触发漏洞。[1] [2]NGINX在前端的存在不构成已证实的安全边界,也无需特定CVE-2019-11043式配置才能认定风险。[1] [2]若运行的是发行版回补构建,必须核对供应商安全公告及实际包版本;段子没有提供这些信息。

存疑与未验证

暂无已验证的受影响实例数、利用成功数、数据泄露量或损失金额。[1] [2] [3]加拿大网络安全中心报告有公开PoC,并称当时未发现活跃利用。[4]CERT-EU认为PoC流传会提高攻击者利用可能性,但没有确认成功在野攻击。[2]对7.3和5.6,公开来源确认版本受影响,但未找到PHP上游修复版。[1] [3]特定Linux发行版是否已向PHP 7.3或5.6回补,未验证。官方资料没有要求特定NGINX配置才能攻击PHP-FPM;具体应用可达性仍取决于部署方式。[1] [2]

参考资料

调研截止 2026-10-22 UTC+8 · 未验证的内容已在正文中标注 · 数字以原始来源为准

本页目录