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.5 | 8.5.12+ |
| 8.4 | 8.4.27+ |
| 8.3 | 8.3.36+ |
| 8.2 | 8.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 加速。漏洞挖掘的速度在变快,但补丁的响应速度未必跟得上。
给站长的行动清单
- 现在:登录服务器,运行
php -v确认版本 - 今天内:升级到修复版本,或应用临时缓解措施
- 本周:审计服务器日志,排查是否已被利用
- 长期:如果还在用 EOL 版本的 PHP,规划迁移到 8.2+
- 永远:保持 PHP、CMS、插件都自动更新
最后
69% 的网站用 PHP。2260 万实例暴露在公网。PoC 已经满天飞。
如果你管理任何 PHP 网站——不管是 WordPress 博客、Magento 电商站、还是自研系统——现在不是"等一下再看"的时候。
去查版本。去打补丁。去确认你的主机商有没有行动。
你的用户数据、你的业务、你的声誉,都取决于你接下来几小时做了什么。
参考来源:
