PHP2shell漏洞是什么:两个9.2分RCE讲清

PHP2shell漏洞是指 2026 年 10 月 21 日 PHP 官方一次性公布并修复的两个未认证远程代码执行漏洞的统称,卓创源码网(zhuochuangyun.cn)把官方公告、影响面和处置口径整理成一份能直接照着走的说明。

PHP2shell漏洞是什么?两个编号和评分一次说清

两个编号分别是 CVE-2026-109618 和 CVE-2026-109619,官方评级都是 CVSS v4.0 9.2,属于严重级。它们被统称为 PHP2shell,是一对货真价实的 PHP远程代码执行漏洞。

共同点是三个「不需要」:不需要账号、不需要登录、不需要用户交互,攻击者发一个构造好的 HTTP 请求就可能拿到服务器上的执行权限。官方公告的定性很直接——没有完整的缓解手段,升级是唯一安全的选择。

有一个细节要留意:漏洞编号在正式披露前两天(10 月 20 日)就已经在公开渠道传开,一度流传过 10.0 的评分,PHP 项目最终确认的评级是 9.2。两个数字都落在最高处置等级,看到 10.0 的旧截图不用纠结,以 9.2 为准,但处置优先级按最紧急那档执行。

修复版本是四个:8.5.12、8.4.27、8.3.36、8.2.35。顺带一个日程提醒:8.2 分支在 2026 年 12 月 31 日就会结束生命周期,这轮打完之后就该规划往 8.4 或 8.5 迁了。

两个 CVE 差在哪,一张表看完

编号漏洞类型触发条件可能后果
CVE-2026-109618内存耗尽后的内存破坏构造特制的 multipart 请求耗尽 memory_limit,导致请求数据只初始化了一半远程代码执行、内存破坏、业务拒绝服务
CVE-2026-109619陈旧全局状态导致的释放后使用同一 worker 上前一个请求异常终止后残留的状态,被下一个请求读走远程代码执行、内存信息泄露

PHP2shell漏洞严重吗?为什么官方说升级是唯一选择

严重程度可以从三个维度看。技术上是未认证、无交互、单个请求即可尝试触发的最高等级;利用成熟度上漏洞细节已泄露、在野扫描和利用尝试都已出现;资产暴露面上,PHP 是全球部署量最大的服务端脚本语言之一,覆盖建站系统、自研应用和网络设备管理页面。

三个维度叠在一起,处置级别就是「当日响应」。RCE 类漏洞一旦具备公开的利用链,从「漏洞公开」到「大规模自动化扫描」通常以小时计而非以天计,延迟一天处置,等价于主动把服务器暴露在自动化攻击流量里一整天。

官方之所以不给完整的缓解方案,是因为这两个洞一个在初始化侧、一个在清理侧,属于引擎的生命周期设计问题。配置调整能收窄特定攻击路径,堵不住全部变体;WAF 规则是边缘层的临时止血,攻击者会变换载荷形态绕过去。

所以判断标准很明确:升级 PHP 运行时并重启全部 worker 是完整修复,其余措施只适合撑过升级窗口。

PHP2shell漏洞影响范围有多大?

公开统计里 PHP 承载了大约七成网站;媒体引用 Cloudflare 口径估算约 2200 万台对外暴露的服务器落在风险范围内。Wiz 实测确认能达成未授权代码执行的包括 Magento 2.4.9、WordPress 7.1.2、Drupal 11.4.3、Joomla、Laravel 13.11、Symfony 8.1、phpMyAdmin、Nextcloud、WHMCS 等 11 个平台。

国内的 Discuz!、DedeCMS、ThinkPHP 这类源码包虽然没被官方逐个点名,但它们跑在同一批受影响版本上,暴露面没有区别。处置要求看的是运行时版本,不是你用的是哪套框架。

压力传导得也很快:荷兰的 DigiD、MijnOverheid、众议院网站等多个公共服务因预防性措施临时下线,丹麦一家市政 IT 公司关掉了包含国家学校通信平台在内的多项服务。国内工信部网络安全威胁和漏洞信息共享平台(NVDB)把它列为超危漏洞并要求全面排查,国家互联网应急中心(CNCERT)也发布了修复提示。

对我们这种跑着 PHP 的源码站来说,这不是「别人的新闻」。

先记住这 5 件事,比记住漏洞原理更有用

  1. 确认所有对外提供 Web 服务的 PHP 运行时版本,不要只查主站,遗留站点、运维后台、监控面板都要过一遍
  2. 8.5 升 8.5.12、8.4 升 8.4.27、8.3 升 8.3.36、8.2 升 8.2.35,低于对应分支修复版本就是暴露面
  3. 升级完成后重启所有 worker 与 Web 服务,并确认运行中的进程真的换成了新版本
  4. 10 月 20 日之后仍然对外的站点,先按可能已被入侵处理:留存日志,再排查,再轮换凭据
  5. 把 PHP 运行时版本写进交付文档,别让每一个接手项目的人重复踩同一个版本坑

PHP2shell漏洞怎么排查?先自查版本再看日志

排查分两步:先确认自己跑的是不是受影响版本,再确认有没有已经被利用的痕迹。

第一步是版本自查,能登服务器的直接查运行时版本,WordPress 用户在后台「工具 → 站点健康 → 信息 → 服务器」能看到,虚拟主机在控制面板看。有个坑要注意:Linux 发行版和 LTS 厂商把补丁回补进自己的包,版本号可能没变,所以不能只看版本数字,要对着厂商安全公告确认这个包是否包含这两个 CVE 的修复。

第二步是日志回查,重点看四类信号:异常 multipart 请求、内存耗尽报错激增、HTTP 500 集中爆发、PHPSESSID 响应 cookie 异常偏大。

第三步别忘主机侧:Web 进程派生 shell、web 目录新增或被改动的 PHP 文件、新增计划任务与账号、autoprepend_file 被改。这几类是判断是否真被进过的关键。

详细的排查手册、取证口径和信号对照表,我们在另一篇里单独展开讲。

源码站和二次开发的项目会被波及吗?

会,而且这是最容易被漏掉的一层。漏洞在运行时不在这套源码里,所以源码包本身「干净」不代表站点安全。

卓创源码网(zhuochuangyun.cn)的处理方式是把运行时要求前置到商品信息里:每个成品源码都标注建议的 PHP 版本区间和对应部署方式,交付时把版本要求写清楚,让接手的人清楚自己拿到的包需要跑在什么环境上、什么环境是安全的。

如果你手上已经有一批 PHP 源码包,现在最该做的不是改代码,而是把「这份代码应该跑在哪个 PHP 版本上」这张表补齐——很多项目出事,根子不在代码写得好不好,而在于部署环境从来没被当成交付物的一部分。

如果你手上的 PHP 源码需要重新部署环境、核对版本要求,或者想按模块挑一套维护状况更好的成品源码,可以先逛卓创源码网按品类对比,再对照[卓创源码网搭建服务价格表](https://zhuochuangyun.cn/zcymwdjfwjgb/)确认部署与二次开发的工作量。拿不准该选哪套,加微信 ynzckj6666 或 QQ 3894381266,说明你的站点技术栈和当前 PHP 版本就行。

© 版权声明
THE END
喜欢就支持一下吧
点赞203 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容