PHP 核心曝 9.2 分远程代码执行零日漏洞,多家网站临时下线应对
PHP 安全团队于北京时间 2026 年 10 月 21 日 22:00(UTC 14:00)紧急发布安全更新,修复两个被代号为 "PHP2Shell" 的远程代码执行漏洞。追踪编号 CVE-2026-109618 与 CVE-2026-109619 双双评为 CVSS v4.0 9.2 分,属于无需身份验证即可触发的零日级别远程代码执行,影响 PHP 5 及之后所有主版本。技术细节与 POC 利用代码在补丁发布前已意外流出,CERT-EU、Wikimedia 基金会及多个主机商均采取了下线或临时缓解措施。目前官方补丁已可用,但仍在生命周期外的 PHP 8.1 及更早版本无/vendor 官方修复,全球约 59% 的公开暴露 PHP 主机(逾 88.4 万台)运行在这些旧版本上。
漏洞概况与技术细节
PHP 官方在补丁发布后的安全通告中披露了漏洞的技术细节:
- CVE-2026-109618(RCE via OOM corruption):内存不足处理可中断 PHP 在内部请求数据仅部分初始化时的流程,请求清理阶段可能将无效数据误认为有效状态。攻击者可利用此缺陷触发任意代码执行。
- CVE-2026-109619(RCE via stale global state):请求持有的内部状态在其支撑内存被释放后仍可存活,后续由同一工作进程处理的请求可能在正常初始化重置前使用这些过期状态,从而执行任意代码。
据流出的名为 "PHP2Shell" 漏洞利用工具截图及演示视频,攻击者通过构造特定的 multipart POST 请求即可利用上述缺陷,最终获取系统 Shell。网上出现的漏洞利用演示视频声称可攻击运行以下程序的服务器:WordPress、MediaWiki、phpBB、Magento、Joomla、Laravel、Symfony、Drupal 和 WHMCS。
相关阅读WordPress 网站如何基于宝塔面板的 LNMP 服务器进行再优化PHP 官方明确声明,风险最高的场景是使用 mod_php 的环境,存在已被证实的利用链:未认证的请求可在任何应用代码运行前触发攻击。涵盖 PHP-FPM、mod_php、php-cgi、FrankenPHP 和 LiteSpeed 等所有面向 Web 请求的 PHP 运行模式。
已采取下线或限制措施的商家与机构
由于技术细节和 POC 提前泄露,安全窗口极短,部分对安全敏感的机构直接选择下线公网 PHP 服务:
- NameCrane:官方网站当前返回 503 服务不可用,已主动下线等待安全补丁。
- NameSilo:主站返回 HTTP 403,已被 Cloudflare 层面拦截,当前无法正常访问。
- Wikimedia Foundation:官方在 Wikitech 发布公告,明确将 Phabricator、Gerrit CI runners、Cloud VPS、Toolforge、translatewiki.net 及所有 Wikibase Cloud 实例全面下线,直至完成 PHP 安全补丁更新。
- 德国弗赖堡大学:计算中心已将多个面向公网的 PHP 关键系统离线,并呼吁校内分散管理管理员同样采取预防措施。
官方补丁发布与修复版本
PHP 官方安全团队已按原定计划在北京时间 10 月 21 日 22:00(UTC 14:00)发布补丁。修复版本如下:
- PHP 8.5.12
- PHP 8.4.27
- PHP 8.3.36
- PHP 8.2.35
按照 PHP 现行维护政策,上述版本是本次获得官方完整补丁的仅四款仍在支持周期内的分支。对于已结束生命周期的 PHP 8.1 及更早版本,PHP 项目不发布官方补丁,但安全团队提供了最小化 source backports 供 PHP 7.4、8.0 和 8.1 的用户自行编译或等待 LTS 发行版回移。Windows 和源码包均已在官方下载页放出。
相关阅读网站更换 OpenLiteSpeed,WordPress 网站使用 OpenLiteSpeed 比 Nginx 资源占用率更低主机商临时缓解方案(不能替代补丁)
PHP 官方明确声明:There are no complete mitigations, updating is the only safe choice(目前不存在完整的临时缓解措施,升级是唯一安全的解决方案)。以下措施出自部分主机商的应急实践,仅能在正式补丁应用前降低暴露面,不能作为安全修复:
- InMotion Hosting:作为预防措施,在托管服务器上临时关闭了 PHP 的
session.upload_progress.enabled设置。理由是目前流传的漏洞分析与 session upload progress 功能存在关联。InMotion 自己的公告也明确声明 This change is a precaution. It is not a substitute for the patch。关闭该设置仅让依赖此功能的上传进度条失效,文件上传本身仍可完成。 - CloudLinux:部署了 WAF 规则来拦截已知的攻击载荷形态。社区分析表明,此类规则只能过滤已知的请求模式,且目前确认的漏洞路径至少包含 session upload progress 和 multipart parser 两条,WAF 规则覆盖范围有限,同样不能视作完整修复。
网络安全研究机构 VirusTotal 和社区项目 php-fix 均总结了临时缓解手段,但几乎所有来源都附带同一句警告:这只是一个 stopgap,不是 fix。
当前应对进度与威胁情报
截至北京时间 10 月 21 日下午:
- 官方补丁:已发布,支持 PHP 8.2–8.5。
- EOL 版本:PHP 8.1 及以下无官方补丁,需依赖 Linux 发行版回移或自行编译最小化补丁。
- 在野攻击:watchTowr、Huntress 和 NCSC 截至发稿尚未确认在野利用实例,但 GitHub 上已公开多个 POC,预计补丁公开后的短时间内会出现自动化大规模攻击。
- 各方动作:CERT-EU、新加坡 CSA 等网络安全机构均已发布高危预警;Wikimedia、部分注册商和主机商已采取下线或限制措施。
对站长与运维的应对建议
持有 Web 业务的用户和运维团队按以下优先级处理:
- 立即升级 PHP 到安全版本:这是目前唯一被 PHP 官方认定为安全的操作。仍在官方支持周期内的环境应直接升级为对应版本(8.5.12、8.4.27、8.3.36、8.2.35)。Linux 发行版和 LTS 厂商已提前收到补丁,请优先通过包管理器更新。
- 托管主机 vs VPS/独服的区别:托管类 WordPress 主机(Managed WordPress Hosting)通常由主机商负责 PHP 升级,用户只需确认服务商已完成更新;VPS、云服务器和独立服务器则需由站长或运维人员自行执行更新,更新 WordPress 核心、主题或插件不会更新服务器底层的 PHP。请确认你的托管类型,不要只更新 CMS 而漏掉解释器本身。
- EOL 版本的处置:运行 PHP 8.1 及更早版本的系统如无法获得发行版回移补丁,应在评估兼容性后尽快升级至 PHP 8.2+。若升级窗口不足,临时将 PHP 应用隔离于内部网络或仅允许反向代理 IP 访问,是更务实的过渡选择。
- 补丁无法立即落地时的临时降险措施:如果补丁应用存在延迟,以下非完整缓解方案可降低暴露面(需配合升级一起执行,不能单独依赖):
- 对 CVE-2026-109618:在 FPM pool 或 Apache 配置中通过
php_admin_value设置memory_limit=-1(应用无法覆盖);设置较小的post_max_size(不需要文件上传时设为 8M,需要上传时设为 32M);确保upload_max_filesize低于post_max_size。 - 对 CVE-2026-109619:在 php.ini 或 FPM pool 配置中设置
session.upload_progress.enabled=0,并重启所有工作进程。PHP 8.5 环境下还建议设置fatal_error_backtraces=0。
- 对 CVE-2026-109618:在 FPM pool 或 Apache 配置中通过
- 加强监控:补丁发布后的 24—72 小时内密切监控 Web 服务进程的异常派生行为、非预期 Shell 子进程、以及访问日志中的异常 multipart POST 请求模式。
本次 PHP2Shell 事件表明,解释器级别的零日漏洞影响面远超单个 CMS 或框架。对于运行着 PHP 环境的 VPS、共享主机和独立服务器而言,只要 PHP 解释器版本在受影响范围内,无论是否直接使用 WordPress,都应在本日内完成升级或隔离。
PHP 官方安全公告页面:https://www.php.net/archive/2026.php






发表评论