跳到主要内容

        PHP2Shell(CVE-2026-109618/109619)影响全球2260万PHP实例,无需登录即可远程执行代码。本文拆解漏洞原理、影响范围和紧急修复方案

PHP2Shell:2026年最严重的PHP漏洞,你的网站可能正在裸奔

PHP2Shell(CVE-2026-109618/109619)影响全球2260万PHP实例,无需登录即可远程执行代码。本文拆解漏洞原理、影响范围和紧急修复方案

10月20日,PHP社区炸了。

两个被命名为 PHP2Shell 的漏洞(CVE-2026-109618 和 CVE-2026-109619)被公开披露,影响范围从 PHP 5.4 一直到 8.5——横跨12年的所有版本。CVSS v4.0 评分 9.2,安全公司 WatchTowr 直接给了满分 10.0。

这不是"建议尽快更新"的那种漏洞。这是"现在就去修,不然关站"的级别。

NSA 和英国 NCSC 都发了公告。至少一个欧洲政府直接拔了网线。Wikimedia、4chan 也预防性下线。

到底有多严重

先看数据:

  • 全球约 69% 的网站 使用 PHP
  • Palo Alto Unit 42 扫描发现 2260万暴露实例 可能存在漏洞
  • 攻击方式:无需登录,一个 HTTP 请求就能远程执行任意代码
  • WordPress、Drupal、Joomla、Magento 全部受影响
  • 所有运行模式都中招:mod_php、PHP-FPM、php-cgi、FrankenPHP、LiteSpeed

最关键的一点:攻击发生在 PHP 解析阶段,你的应用代码还没跑起来,漏洞就已经被触发了。 这意味着任何应用层的认证、防火墙、WAF 规则都挡不住。

漏洞原理(说人话版)

CVE-2026-109618——PHP 在处理请求时如果内存耗尽,清理阶段会把"初始化了一半"的数据当成有效数据来处理,攻击者利用这个空档注入并执行任意代码。

CVE-2026-109619——PHP 的 worker 进程在复用内存时,上一个请求的状态没有被正确清除,新请求可以读到这些"过期"的内存数据,最终导致堆溢出和远程代码执行。

简单说:PHP 在处理 HTTP 请求的底层就有裂缝,黑客连你的登录页都不用碰,直接拿 shell。

时间线

时间事件
2026年8月漏洞被发现(据报由 AI 辅助挖掘)
10月17日AWS 监测到野外利用尝试
10月20日PHP 项目公开披露
10月21日官方补丁发布
10月22日PoC 代码在 GitHub 流传,扫描攻击开始扩散

怎么修

方案一:立即升级(唯一推荐方案)

PHP 分支修复版本
8.58.5.12+
8.48.4.27+
8.38.3.36+
8.28.2.35+

7.4、8.0、8.1 已经 EOL(停止支持),但官方提供了源码补丁。如果你还在用这些版本,现在是迁移的最后机会。

方案二:临时缓解(仅限无法立即升级的情况)

在 php.ini 中添加:

session.upload_progress.enabled = Off

然后重启 Web 服务。这只是降低 CVE-2026-109618 的利用概率,对 CVE-2026-109619 无效。不是长久之计。

方案三:如果你用虚拟主机

立即联系你的主机商,确认他们是否已打补丁。如果没有,要么施压让他们修,要么考虑换一家。你的网站安全不应该取决于别人的响应速度。

怎么检查自己有没有被攻击

  • 检查 Web 服务器日志中是否有异常的 POST 请求(尤其是带有超长或畸形 session 数据的请求)
  • 监控 PHP worker 进程是否产生了可疑的子进程(如 /bin/sh、wget、curl 调用)
  • 查看服务器是否有新创建的异常文件或 cron 任务

这次为什么不一样

有人拿 PHP2Shell 和 2014 年的 Heartbleed 对比。确实很像:

  • 都是底层运行时漏洞,不是应用层 bug
  • 都影响极广(Heartbleed 影响 OpenSSL,PHP2Shell 影响 PHP)
  • 都是在补丁发布前就有野外利用
  • 都需要基础设施层面的响应

但 PHP2Shell 更危险的一点:Heartbleed 泄露的是内存数据,PHP2Shell 直接给攻击者一个 shell。 一个是偷看,一个是接管。

另一个值得关注的细节:据报道,这次漏洞的挖掘过程中使用了 AI(包括 Gemini 和 GPT 系列)。这意味着攻防双方都在用 AI 加速。漏洞挖掘的速度在变快,但补丁的响应速度未必跟得上。

给站长的行动清单

  1. 现在:登录服务器,运行 php -v 确认版本
  2. 今天内:升级到修复版本,或应用临时缓解措施
  3. 本周:审计服务器日志,排查是否已被利用
  4. 长期:如果还在用 EOL 版本的 PHP,规划迁移到 8.2+
  5. 永远:保持 PHP、CMS、插件都自动更新

最后

69% 的网站用 PHP。2260 万实例暴露在公网。PoC 已经满天飞。

如果你管理任何 PHP 网站——不管是 WordPress 博客、Magento 电商站、还是自研系统——现在不是"等一下再看"的时候。

去查版本。去打补丁。去确认你的主机商有没有行动。

你的用户数据、你的业务、你的声誉,都取决于你接下来几小时做了什么。


参考来源: