PHP 严重远程代码执行漏洞:CVE-2026-109618 与 109619 补丁发布
新闻

PHP 严重远程代码执行漏洞:CVE-2026-109618 与 109619 补丁发布

阅读需 7 分钟

PHP 官方已发布 8.5.12、8.4.27、8.3.36 和 8.2.35 安全更新,修复代号为“php2shell”的两个严重未授权远程代码执行漏洞 CVE-2026-109618 与 CVE-2026-109619。本文梳理技术成因、排查清单及凭据泄露防护建议。

2026 年 10 月 21 日,PHP 开发团队正式发布了 PHP 8.5.12、8.4.27、8.3.36 和 8.2.35 安全版本,修复了安全界统称为“php2shell”的两个严重漏洞:CVE-2026-109618 和 CVE-2026-109619。这两个漏洞均可在无需身份验证的情况下导致远程代码执行(RCE)。PHP 维护团队给出的核心结论非常明确:升级 PHP 运行时环境是唯一彻底的修复方案。

由于全球约 70% 已知服务端语言的网站运行在 PHP 之上,此次安全更新引发了多国网络安全应急响应中心的紧急通报,包括欧盟计算机应急响应小组(CERT-EU 安全公告 2026-018)和荷兰国家网络安全中心(NCSC-NL)。在欧洲及全球多个地区,不少公共门户和企业在线服务在补丁部署期间主动将网站切换至临时维护状态。

CVE 提前泄露、发现时间线与技术根因

根据 The PHP Foundation 发布的技术复盘报告,CVE-2026-109618 背后的内存耗尽(OOM)处理问题最早在 2024 年由 Sovereign Tech Agency 资助、OSTIF 与 Quarkslab 执行的外部安全审计中就已被注意到。当时该利用路径仅停留在理论层面,且修改方案可能破坏向下兼容性与第三方扩展。2026 年 7 月底 PHP 加入 Patch the Planet 计划后,Calif 安全研究员 Ryan Austin(由首席执行官 Thai Duong 带领)于 8 月 11 日证实了无条件远程代码执行路径,并向 PHP 基金会安全工程师 Volker Dusch 提交了报告;同一天 OpenAI 独立报告了相同根因,随后 Wiz 于 8 月 24 日、OpenAI 于 9 月 18 日又补充了更多利用路径。

然而,原定的协同披露时间表在正式发版前约 24 小时被打破。10 月 20 日 15:00 UTC 左右,两个 CVE 编号及其标题在修复包尚未发布前意外出现在公开漏洞数据流中,促使 CERT-EU 和 NCSC-NL 紧急发布预警。需要特别说明的是:10 月 20 日至 21 日期间多地网站暂停访问,主要是系统管理员在等待补丁期间采取的预防性下线措施,而非已证实的大规模破坏性攻击所致。

从技术机制来看,CVE-2026-109618(GHSA-w8hw-w9fx-j79w、NVD)源于 PHP 在解析请求数据时若触发内存不足(OOM),未能彻底清理半初始化数据结构,从而引发内存损坏与远程代码执行(CWE-119、CWE-787)。CVE-2026-109619(GHSA-6wmf-4rv5-p3rp、NVD)则属于释放后重用(use-after-free,CWE-416)漏洞,会话上传进度或致命错误回溯的内部状态在请求内存释放后仍残留在进程中。PHP 官方按 CVSS v4.0 将两个漏洞评定为 9.2 分(严重),NVD 按 CVSS v3.1 评定为 9.8 分(严重)。

受影响部署环境与修复版本

PHP 官方安全公告指出,所有处理 Web 请求的 PHP 环境均存在风险,涵盖 PHP-FPM、Apache mod_php、php.exe、CGI/FastCGI 以及 FrankenPHP、RoadRunner 和 Swoole 等持久化工作进程运行时。其中风险最高的是 Apache mod_php 部署架构,因为同一进程内的所有工作线程共享同一内存地址空间。

使用 PHP-FPM 的运维团队同样不可掉以轻心。尽管 FPM 的进程隔离降低了 CVE-2026-109618 的利用风险,但 CVE-2026-109619 所涉及的会话上传进度功能默认处于开启状态,无需任何特定业务脚本即可在标准 FPM 部署中触发。研究人员已证实针对 mod_php 和 FPM 均可实现完整远程代码执行。Tenable 的威胁分析报告提醒,由于 FPM 主进程会自动拉起崩溃的子进程,服务表面正常运行并不代表未遭受探测;同时 Tenable 警告切勿盲目运行 GitHub 上假冒“php2shell PoC”的仓库,其中已发现捆绑窃密木马(infostealer)的恶意样本。

当前受支持分支的官方修复版本分别为 PHP 8.5.12、PHP 8.4.27、PHP 8.3.36 和 PHP 8.2.35。鉴于漏洞严重性,PHP 团队还为已停止常规支持的 PHP 7.4、8.0 和 8.1 提供了源码级最小修复分支。对于 Debian 和 Ubuntu 等 Linux 发行版,安全补丁通常会向后移植(backport)到现有软件包版本中,因此管理员应对照发行版安全公告核对已安装的软件包版本号,而不能仅凭 php -v 的输出判断是否修复(Debian Security Tracker、Ubuntu Security)。

应急排查清单与临时缓解措施

1. 全面梳理 PHP 运行时资产:排查所有对外或对内处理 HTTP 流量的 PHP 实例,包括 FPM 进程池、Apache mod_php、容器镜像以及 FrankenPHP、RoadRunner、Swoole 工作进程,并立即移除任何对外暴露 phpinfo() 输出的诊断页面。

2. 升级软件包并重启工作进程:升级至 PHP 8.5.12、8.4.27、8.3.36 或 8.2.35(或 Linux 发行版对应的修复软件包),并在升级后同时重启 Web 服务器与所有 PHP-FPM 及持久化应用工作进程,确保内存中不再驻留旧版本二进制文件。

3. 临时配置加固(仅限补丁部署前的过渡期):PHP 官方强调,修改配置仅能收窄特定攻击路径,无法替代补丁使未升级系统变安全。在正式升级前,针对 CVE-2026-109618 可通过管理员级指令 php_admin_value 强制设定 memory_limit=-1(防止业务代码通过 ini_set() 或 .user.ini 覆盖)并调低 post_max_size 与 upload_max_filesize,同时切勿在操作系统层面设置 RLIMIT_AS 或 RLIMIT_DATA 限制,否则反而会更早触发内存耗尽状态。针对 CVE-2026-109619,应设置 session.upload_progress.enabled=0 并在 PHP 8.5 中设置 fatal_error_backtraces=0;需注意即便关闭了 error_reporting 和 display_errors,错误抑制符 @ 仍可能生成内部错误对象。

4. 审计进程崩溃与异常日志:回溯检查 FPM 和 Web 服务器错误日志中是否存在频繁的工作进程崩溃(SIGSEGV 或 OOM)、异常庞大的 multipart 上传请求及可疑的会话上传活动。仅凭常规 HTTP 访问日志看似正常并不能排除被攻击的可能,因为导致工作进程中途崩溃的请求往往不会完整写入标准访问日志。

LeakData 安全视角:为何服务器漏洞常演变为凭据泄露,以及我们如何提供支持

首先向广大用户与合作伙伴说明:LeakData 平台及各项服务均不受 CVE-2026-109618 与 CVE-2026-109619 漏洞影响。在国际安全公告发布后,我们的安全团队已第一时间完成外部边界与防护策略核查,确认服务完全安全。但对于广大运维 Web 应用的机构而言,像 php2shell 这类严重远程代码执行漏洞的真正连锁风险,往往体现在漏洞暴露窗口期内发生的数据与凭据窃取。

当攻击者利用未修复的 Web 服务器获得代码执行权限后,首要目标通常是提取服务器上的环境配置文件、数据库连接凭据、API 密钥、活跃会话令牌以及用户账户表。即便技术团队事后完成了 PHP 版本升级,在暴露窗口期内被窃取的企业邮箱账号、管理员凭据与客户数据,往往会在数天或数周后流入窃密木马(stealer)日志、Telegram 频道及暗网数据交易论坛。

LeakData 致力于帮助个人用户和企业安全团队及时发现此类后续暴露风险。在完成服务器补丁升级后,您可以通过 LeakData 检索企业域名关联的邮箱地址、管理员账号或密码是否出现在最新捕获的泄露数据集中,并开启域名与身份持续监控服务,一旦发现受影响凭据外泄即可第一时间收到预警,快速执行密码重置与密钥轮换。欢迎访问我们的工作原理页面了解详情。

#PHP安全#CVE-2026-109618#CVE-2026-109619#php2shell#网络安全
返回全部资讯