PHP2Shell(英语 PHP2Shell)是 PHP 解释器中两个严重漏洞 CVE-2026-109618 和 CVE-2026-109619 的统称,它们已于 2026 年 10 月 21 日被修复。在一定条件下,借助这两个漏洞无需登录系统即可在服务器上执行代码;受影响的是处理 Web 请求的 PHP 安装,其中使用 mod_php 模块的 Apache 风险最高。两者的 CVSS 4.0 评分均为 9.2 分。在服务器端语言可知的网站中,69.2% 使用 PHP。123
据 PHP Foundation 称,其中一个错误的最初迹象早在 2024 年就已被发现,但修复陷入了停滞。2026 年,Calif 公司(按照 OpenAI 的 Patch the Planet 计划)、OpenAI 本身以及 Wiz 借助 AI 各自独立地发现了这些漏洞。协调发布修复的安排被泄露打乱,而据 Amazon 称,第一次攻击尝试发生在披露前四天。截至 10 月 25 日,没有经证实的入侵;在仍存在漏洞的服务中,大多数运行在没有官方修复的 PHP 版本上。1456
历史
- 2024Quarkslab 对 PHP 进行了多年来第一次外部安全审计;审计资金由 PHP Foundation 从 Sovereign Tech Agency 获得。一名 PHP 开发者在修复其中一项发现时,看到了一个内存不足问题的最初迹象,这个问题后来成为 CVE-2026-109618。修复工作一拖就是几个月。1 ¶ cjbjq4na9
- 22.06.2026OpenAI 宣布 Patch the Planet 计划:与 Trail of Bits 公司一起,帮助开源代码的维护者发现并修复漏洞。7 ¶ cj65i2dcj
- 11.08.2026自 7 月 30 日起按照 Patch the Planet 计划检查 PHP 的 Calif 向 PHP 安全团队报告了第一个漏洞。从这一天起,修复成为 PHP Foundation 团队的首要任务。OpenAI 独立报告了同一个根本原因,并在 9 月 18 日报告了新的攻击途径。18 ¶ c9buuy92f
- 24.08.2026Wiz 向 PHP 报告了自己的发现。它在 8 月 19 日借助自家工具 Wiz Atlas 以及 Gemini 4 Argon 和 GPT-5.6 Sol 模型发现了第一个漏洞,并在 Drupal 和 WordPress 上证实了无需登录即可执行代码。9 ¶ cwp6k86n2
- 20.10.2026在计划发布的两天前,CVE 编号泄露到网上;Calif 误发了一段展示可用漏洞利用程序的视频。发布被提前一天。1 ¶ c8mhxyghn
- 21.10.2026PHP 发布 8.5.12、8.4.27、8.3.36 和 8.2.35 版本。对于 8.1、8.0 和 7.4,团队只在源代码中发布了最小限度的修复;这些分支没有官方版本。12 ¶ cgydsfait
- 23.10.2026PHP 报告了同类的第三个漏洞 CVE-2026-115560:它也影响已更新的版本,但只在不常见的配置下,因此修复将按常规流程发布。2 ¶ cq5qrgrfb
数据
谁还没有修复。 Censys 每天按版本统计可从互联网访问的 PHP 服务,版本以服务自己报告的为准。计数单位是服务,而不是服务器或网站:不同公司的计数相差可达几十倍,只有同一张表中的各行才能相互比较。并非所有服务都会报告版本:截至 10 月 25 日,在发现的 9960 万个 PHP 服务中,有 5690 万个版本未知,而这个数字在一周内从 1600 万增长而来,因为 Censys 发现的服务变多了。因此表中的数字是下限。6
| 日期 | 受支持的版本,未更新 | 没有官方修复的版本(8.1 及更早版本) | 已更新 |
|---|---|---|---|
| 21.10.2026 | 1700 万 | 2330 万 | 40 万 |
| 22.10.2026 | 1340 万 | 2330 万 | 490 万 |
| 23.10.2026 | 970 万 | 2330 万 | 920 万 |
| 24.10.2026 | 900 万 | 2350 万 | 1010 万 |
| 25.10.2026,07:15 UTC | 900 万 | 2350 万 | 1030 万 |
10 月 22 日和 23 日,已更新服务的数量每天增加 400 万以上,10 月 24 日则增加不到 100 万。所有服务中最常见的版本是 7.4.33,它属于没有官方修复的分支:670 万个服务。Censys 把所有旧分支都算作没有修复的受影响版本,但 2350 万中约有 310 万是早于 5.4 的版本,而 Wiz 写道,受影响的是从 5.4 开始的版本。96 ¶ c3cpdbjvf
在有人负责更新的地方,更新进展很快,然后几乎立刻停了下来:到 10 月 25 日早上,受支持版本上仍有约 900 万个服务没有修复,而在根本没有修复的受影响旧版本上有约 2000 万个。后者的数量在这几天里没有减少。 ¶ c968v4bz6
事件
发布前的泄露,2026 年 10 月 ¶ c7xzna2w2
发布原定于 10 月 22 日 14:00 UTC。10 月 20 日 15:00 左右,CVE 编号出现在论坛和社交媒体上——附带的发布时间是错的,评分 10.0 也是错的。泄露内容中没有技术细节。PHP 于 19:30 发布了预先公告,并把发布提前一天:各发行版还在打包,立即发布意味着让许多人没有简单的更新途径。1
在泄露和预先公告之后,Calif 误发了一段视频,视频中它的漏洞利用程序对多个目标奏效。视频已被删除,但副本在社交媒体上流传开来;据 PHP Foundation 称,这段视频加快了概念验证漏洞利用程序(PoC)的出现。据该基金会称,PHP 在 23:00 左右开始发给几家关键基础设施运营方的防护建议也可能已经泄露。1
据基金会称,10 月 21 日 07:41——在发布前六个多小时——Chainguard 上传了已包含修复的构建镜像。据基金会称,Chainguard “单方面打破了保密期(embargo)”,任何攻击者都可以在其他 PHP 用户还在等待时研究这个修复。Chainguard 负责人丹·洛伦茨(Dan Lorenc)解释说,他这样决定是因为漏洞利用程序已经出现在网上。11011
披露前后的攻击,2026 年 10 月 ¶ cnch37ut9
据 Amazon 称,第一次利用尝试于 10 月 17 日——披露前四天——落在它的蜜罐网络 MadPot 上,来自一个商业匿名网络的地址。10 月 21 日上午,还在发布之前,尝试变多了,而且来自不同的地址。其中是否有哪一次能在真实服务器上成功,Amazon 并不知道。4 ¶ cntwbn33n
Cloudflare 于 10 月 21 日 03:02,在披露之前,为使用免费版和付费版 Web 应用防火墙的客户默认启用了防护。据其首席执行官马修·普林斯(Matthew Prince)称,公司在披露前的 10 小时内看到了数千次攻击尝试,披露后 45 分钟内是数万次,两小时内是数十万次,此后数量达到数百万次。1213 ¶ c5tfj6mar
攻击者中有僵尸网络:Sophos 拦截了一次安装 Potassium 的尝试,据其评估,这是 Mirai 的一个变种。14 ¶ ca3cc2shq
没有经证实的入侵。CISA 在发布警报时没有看到成功的利用。Sophos 在 10 月 22 日报告了一次成功入侵,但当晚就作了更正:没有成功入侵的证据。SOCRadar 在攻击者的服务器上发现了一套攻击工具,以及检查约 20 个网站的痕迹:没有一个符合攻击条件。51516 ¶ ckj7jbydd
批评
内部的失败。 PHP Foundation 直言,自 2024 年以来的拖延是“结构性失败”——原因在于安全团队的决策方式和人手不足。1 ¶ cjjeciweq
顶住泄露的成功。 SANS Internet Storm Center 的约翰内斯·乌尔里希(Johannes Ullrich)认为,协调披露(coordinated disclosure)总体上奏效了,按时给出了经过检验的修复,而那些“不守规矩”的厂商造成的泄露不应掩盖这一点。17 ¶ cz5h4dfrp
AI 垃圾代替漏洞利用程序。 公开的“漏洞利用程序”很多,能用的几乎没有。SANS 的博扬·兹德尔尼亚(Bojan Zdrnja)在其中看到了“多得难以置信的”AI 生成的垃圾;VulnCheck 看到 GitHub 上有数百个仓库,其中真正的只有寥寥几个;据 Flare 的综述,黑客论坛的参与者把公开代码称为“AI 垃圾”和“氛围编程糊出来的”。乌尔里希在 10 月 23 日写道,据他所知,还没有可靠的公开漏洞利用程序,但有几家公司声称自己手里有可用的代码。17181920 ¶ c8jkkhna6
保密期对 AI。 Amazon 的结论是,保密期只在别人还没发现同一个错误之前起保护作用:AI 让把修复或公告变成可用漏洞利用程序变得更便宜,调查应从已知的第一次攻击开始,而不是从披露日期开始。Wiz 写道,一名研究人员借助前沿模型用一周完成了以前世界级团队需要几个月才能完成的工作。94 ¶ ctq7enzyg
发展
PHP Foundation 正在改变安全工作的组织方式。安全团队将按多数而不是全体一致作出决定;基金会领导层将更早得知严重漏洞。从 2026 年 5 月起,生态系统安全团队开始运作,基金会里有一名 AI 安全工程师,7 月和 9 月又来了负责处理报告和加固代码的员工。工作量正是因为同样的 AI 工具而增加:自 7 月 1 日起,团队发布了 15 个 CVE,并处理了 100 多份最终被证明无效、重复或无法复现的报告。基金会请求企业、托管服务商和各国政府提供资金。1 ¶ cqruv52g4
CISA 建议,无法更新或运行 PHP 8.1 及更早版本的用户,在更新之前让基于 PHP 的系统下线。5 ¶ csvzak3wc
在 PHP2Shell 中,三支独立团队在 8 月间借助 AI 发现了最重要的开源项目之一中的严重漏洞。由此得出的主要结论是:秘密已经守不住了。如果同一个错误能这么快被几支团队发现,71 天的保密期就只靠“暂时还没有别人发现它”来维持——而据 Amazon 称,第一次攻击比披露来得更早。薄弱环节如今不在发现,而在修复所需的人和钱,以及那些没人会去更新的旧版本。关于这一现象的更多内容,见条目“AI 漏洞挖掘”。 ¶ cmw3tbywx
参见
参考资料
-
Today’s PHP Security Release, and How We’re Strengthening PHP Security — The PHP Foundation, 21.10.2026. thephp.foundation ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11
-
PHP: News Archive - 2026 — php.net, 20.10.2026–23.10.2026. php.net ↩ ↩2 ↩3
-
Usage Statistics and Market Share of PHP for Websites, October 2026 — W3Techs, 10.2026. w3techs.com ↩
-
Amazon Threat Intelligence identifies PHP2Shell exploitation prior to public disclosure in MadPot — Amazon Web Services, 21.10.2026. aws.amazon.com ↩ ↩2 ↩3
-
Critical Vulnerabilities in PHP Require Immediate Patching — CISA, 21.10.2026. cisa.gov ↩ ↩2 ↩3
-
PHP2Shell services — Censys, 数据截至 25.10.2026. php2shell.censys.com ↩ ↩2 ↩3
-
OpenAI launches new initiative to help find and patch open source bugs — TechCrunch, 22.06.2026. techcrunch.com ↩
-
PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the Internet — Wiz, 21.10.2026. wiz.io ↩ ↩2 ↩3
-
丹·洛伦茨(dlor)的评论 — Hacker News, 21.10.2026. news.ycombinator.com ↩
-
PHP Foundation Says Chainguard Broke Security Embargo Ahead of Emergency Patches — Socket, 21.10.2026. socket.dev ↩
-
Cloudflare deploys protections against php2shell vulnerability — Cloudflare, 21.10.2026. blog.cloudflare.com ↩
-
Hackers pile on PHP2Shell as AWS reveals attacks began before disclosure — The Register, 22.10.2026. theregister.com ↩
-
Mirai Botnet Operators Join PHP2Shell Attacks as ASLR Bypass Exploits Emerge — SecurityWeek, 23.10.2026. securityweek.com ↩
-
Proof-of-concept exploit released for PHP vulnerabilities (CVE-2026-109618, CVE-2026-109619) — Sophos, 21.10.2026. sophos.com ↩
-
PHP2Shell Exploit Tooling Found on Exposed Attacker Server — SOCRadar, 22.10.2026. socradar.io ↩
-
PHP Vulnerability Wrap-Up — SANS Internet Storm Center, 23.10.2026. isc.sans.edu ↩ ↩2
-
(Reliable)? php2shell exploitability — SANS Internet Storm Center, 23.10.2026. isc.sans.edu ↩
-
PHP2Shell Vulnerabilities: CVE-2026-109618 and CVE-2026-109619 — VulnCheck, 21.10.2026. vulncheck.com ↩
-
“PoC Yes. RCE No.”: What the Underground Actually Thinks of the Public PHP2Shell Exploits — Flare, 23.10.2026. flare.io ↩