首页 / 建站运营 / 正文

PHP2Shell 是什么:两个 9.2 分漏洞,为什么这两天全网网站都在紧急更新

Thu Oct 22 10:21:20 CST 2026 阅读 3
PHP2Shell 是什么:两个 9.2 分漏洞,为什么这两天全网网站都在紧急更新

一句话结论:PHP2Shell 不是某个网站程序的漏洞,而是 PHP 语言核心本身爆出的两个远程代码执行漏洞(CVE-2026-109618 与 CVE-2026-109619),CVSS v4.0 评分均为 9.2 分,攻击者无需登录、无需任何用户交互就可能在服务器上执行代码。官方已在 2026 年 10 月 21 日紧急发布修复版本,升级到修复版本是唯一的完整修复办法。只要你的网站是用 PHP 做的,这两天就应该确认一遍版本。

这两天到底发生了什么?

时间线大致是这样的:

  • 10 月 17 日:Amazon 的蜜罐系统在漏洞公开之前,就已经记录到针对这两个漏洞的利用尝试,说明在野利用先于公开披露出现;
  • 10 月 20 日:漏洞细节提前泄露,留给网站运营者的缓冲时间被大幅压缩;
  • 10 月 21 日:PHP 官方紧急发布修复版本(原定 10 月 22 日,因细节泄露提前了一天);
  • 公开后数小时内,网上已出现概念验证代码和大规模扫描,Cloudflare 表示已侦测到早期攻击;欧洲多国政府网站预防性下线了部分服务,FBI/NSA、CERT-EU、澳大利亚 ACSC 等机构均发布了紧急通告。

这两个漏洞由安全公司 Calif、Wiz 等在 AI 模型协助下发现,据披露已经在 PHP 代码中潜伏了约 14 年——这也是它影响面大的原因之一:受影响的不是某个新版本,而是多年来的存量安装。

两个漏洞分别是什么?

两个漏洞的类型相同(CWE-824:访问未初始化指针),但出问题的位置不同。用概念层的话讲清楚:

对比项CVE-2026-109618CVE-2026-109619
评分CVSS v4.0 9.2 分CVSS v4.0 9.2 分
触发场景请求处理中内存耗尽(OOM),PHP 用 longjmp() 紧急中止请求时请求处理中发生致命错误、被中止之后
问题本质部分请求内存还没初始化完成,后续清理流程却把这块无效内存当作有效数据去读取和跳转全局状态仍指向一块已在请求结束时被释放的内存,后续请求可能读到这块失效状态(释放后使用,use-after-free)
共同点都出在「请求异常中止后的收尾环节」;都不需要登录和用户交互;利用时攻击者需要用大量特制请求做堆内存布局、并命中同一个 worker 进程

需要客观看待的一点是:触发崩溃类问题不难,但把利用做到稳定执行的门槛较高。不过「门槛较高」不等于可以拖——扫描和在野利用已经出现,拖得越久,被批量扫描命中的概率越高。

为什么影响面这么大?

按 W3Techs 的统计口径,全球约七成网站在服务端使用 PHP,WordPress 等主流建站程序都构建在 PHP 之上。而这两个漏洞影响的是所有处理 Web 请求的 PHP 安装方式,包括 PHP-FPM、Apache mod_php、php-cgi、FrankenPHP、LiteSpeed 等常见运行方式。也就是说,判断自己是否受影响的标准只有一个:服务器上的 PHP 版本,与你用什么程序建站无关。

网站运营者今天该做哪几件事?

  1. 先查版本:确认服务器当前 PHP 版本号,具体查法见常见问题栏目里的自查指南;
  2. 对照修复版本升级:8.5 → 8.5.12、8.4 → 8.4.27、8.3 → 8.3.36、8.2 → 8.2.35,低于对应修复版的都应尽快升级;
  3. 升级后重启 PHP 服务:不重启,新版本不会真正生效;
  4. PHP 8.1 及更早版本要特别处理:这些版本已停止官方支持、没有官方版本更新,官方只提供了 7.4 / 8.0 / 8.1 的最小源码补丁供自行编译者使用,部分 Linux 发行版会回移植修复——暂时无法升级的,应先把应用下线或与公网隔离;
  5. 不要指望改配置或 WAF 兜底:官方明确没有完整的配置缓解办法,WAF 和防火墙规则只能做临时缓冲;
  6. 分不清就问主机商:PHP 运行时通常由主机商或服务器管理员维护,更新 WordPress 和插件并不等于更新了 PHP。

网站安全没有旁观席。如果你的企业官网正运行在未修复的 PHP 版本上,先完成升级这一步;后续的日常巡检、版本跟进和内容运营,可以交给一套稳定的运营机制持续做,这也是我们一直在建站运营栏目里分享的方法。不确定自己网站情况的,可以通过本站联系我们页面的企业微信二维码咨询。

想用智盟CMS 为企业建一个能获客的官网?扫码咨询。

智盟CMS企业微信二维码