AREXOpen in interactive Feed

AREX Feed Article

Wiz 研究员发布 PHP2Shell 技术披露:WordPress、Drupal、Joomla 未认证 RCE 逐一演示成功

October 22, 2026

北京时间 10 月 21 日 21 时 38 分(UTC 13 时 38 分),即 PHP 官方发布修复版本约 20 分钟前,X 账号自述为 Wiz 云安全研究员的 发出了 PHP2Shell 的原始技术披露:首帖以清单形式宣布四项结果全部打钩——WordPress、Drupal、Joomla 的未认证远程代码执行(RCE,即攻击者无需登录即可在服务器上运行自己的代码),外加对任意 PHP 应用的远程内存泄露;将漏洞定位为 PHP 内部错误处理(内存耗尽与致命错误)中的内存破坏,对应编号 CVE-2026-109618 与 CVE-2026-109619,并称演示「与部署的应用逻辑无关」。当天,PHP Foundation 在维护者一侧逐项确认了利用条件;15:56 UTC,捷克国家网络与信息安全局(NÚKIB)以认证政府账号发帖确认:公开可得的利用信息(PoC,即利用概念验证)已经存在。

同一天,OpenAI 公布了这场披露的官方框架:其官方博客称牵头了一个运转约两个月的联盟,联合创始人 Greg Brockman()在长文中将漏洞命名为 php2shell,称其在 PHP 中已存在 14 年——这些是 OpenAI 的单方口径。10 月 21 日陆续落地的研究者演示、维护者说明与政府通告,补上了官方公告没有给出的部分:漏洞究竟能做什么、修复为何拖了这么久、披露窗口如何被打乱。

sagitz 线程:三大 CMS 逐项演示,内存读取不挑应用

首帖发出约 20 分钟后(13:59 UTC),刊出研究《PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the Internet》,其时间线标注 8 月 24 日向 PHP 安全团队报告、10 月 21 日修复版可用。联合披露站点 (署名 Wiz Research、Calif 与 OpenAI)放出三段受控环境下的演示视频,说明演示针对测试时点最新的 WordPress、Drupal、Joomla 容器镜像,并按 CVE 写明分工:CVE-2026-109618 已演示三者上的未认证 RCE;CVE-2026-109619 已演示 WordPress 与 Drupal 上的未认证 RCE,另演示了与应用无关的远程内存泄露。该站强调,利用并不要求目标恰好运行这三款应用之一,并在页面写明:PHP 支撑约 70% 的网站。

sagitz 在跟帖中将内存读取称为「Heartbleed 式内存泄露」;按 php2shell.com 的说明,这类读取无需先取得代码执行就能窃取数据,worker(处理请求的工作进程)内存里可能包含属于其他请求或服务器本身的密码、认证令牌、API 密钥和证书。sagitz 首帖截至 10 月 22 日检索时已获 2,455 次点赞、约 34.8 万次浏览。 的报道补充了演示的成色:研究者称 AI 模型帮助把陈年缺陷转成了可用的利用代码,一名研究者约一周完成的工作,按其说法原本需要一个团队数月;Calif 则把这类缺陷的思想脉络追溯到 2004 年的 PHP 研究,并称当前模型尚不能可靠地从这种冷门的老原语自主起步。

PHP Foundation 确认利用条件:mod_php 默认配置下完整 RCE 已演示

在修复发布当天发布长文,把两项漏洞的利用条件写到了具体配置层面。CVE-2026-109618(OOM,即内存耗尽引发的内存破坏):请求若在错误时机触及 memory_limit,PHP 可能留下只初始化了一半的内部数据,稍后又把它当作有效数据处理;在 Apache 以 mod_php 模块内嵌运行 PHP 时,一个未认证请求就能在任何应用代码运行之前触发,默认配置下的完整 RCE 已被演示;PHP-FPM(PHP 的 FastCGI 进程管理器)上也经应用层代码路径确认了 RCE。CVE-2026-109619(残留全局状态):致命错误若发生在错误时点,内部状态会指向属于上一个请求的内存,同一 worker 处理的下一个请求可能使用这块已释放的内存;use-after-free 与 worker 崩溃已确认,报告者还对一个运行在 Apache mod_php 上的真实应用演示了 RCE。

的安全通告把风险面划得更宽:所有服务 Web 请求的 PHP 安装都在风险之内——PHP-FPM、mod_php、php-cgi、FrankenPHP、LiteSpeed——其中 mod_php 风险最高,两项漏洞在通用漏洞评分系统 CVSS v4.0 下均为 9.2 分。Foundation 解释了两项漏洞为何既严重又难修:它们位于几乎每个请求都会经过的内存管理与错误处理代码中,要修就得在破坏兼容性、损害性能和迫使庞大的第三方扩展生态改动之间取舍。

2024 年审计已见苗头,修复因「结构性失败」搁置数月

Foundation 的博文交代了这段内部史。2024 年,PHP 完成了多年来的第一次外部安全审计:基金会争取到德国主权技术局(Sovereign Tech Agency)经费,经 OSTIF(开源技术改进基金)组织、由 Quarkslab 执行。一名受基金会雇佣的核心开发者在修复 Quarkslab 所报问题时,发现了 CVE-2026-109618 背后 OOM 问题的最初迹象。当年有人推断过利用的可能性,但没有找到具体攻击向量,加上其他影响明确的问题排在前头,这件事被搁置。

2026 年,基金会促成 PHP 项目加入 OpenAI 的 Patch the Planet 计划,安全公司 Calif 于 7 月 30 日开始审计 PHP;8 月 11 日,其研究者 Ryan A 报告了一个与 OOM 问题同根因的无条件 RCE,OpenAI 也在同一天独立报告了同一根因;Wiz 的报告落在 8 月 24 日,OpenAI 又在 9 月 18 日补充了更多攻击向量,Trail of Bits 也在对 PHP 做审计。从 8 月 11 日起,修复成为基金会安全团队的头号优先级——靠基金会经费,多名开发者得以全职投入,最终连周末与昼夜轮转都用上。

至于为何拖了这么久,Foundation 的解释相当直白:安全团队当时拿出了几种互相竞争的修法,各自代价不同——破坏向后兼容、带来新的拒绝服务风险,或要求大量第三方扩展改造;以共识运作的团队迟迟无法取舍,又害怕选错方案的后果,加上当时没有已知的 RCE 路径、真正懂引擎的核心开发者稀缺,修复工作在数月间反复搁置与重启。「我们不会装作没有这回事:延误是一次结构性失败,既源于安全团队的决策流程,也源于它的资源不足」,博文写道,团队此后已开始改流程,目标是让决策可以按多数产生。这支小团队的负担还在加重:7 月 1 日以来他们发布了 15 个 CVE,同时处理了超过 100 份无效、重复或无法复现的报告;Foundation 称,AI 辅助研究意味着报告数量还会继续增长。

CVE 编号提前泄露,修复发布比原计划早了一天

按 Foundation 的说法,协调披露运转良好,直到原定发布日前两天。10 月 20 日约 15:00 UTC,两个 CVE 编号开始在论坛与社交媒体上流传,附带错误的发布时间,以及一个 PHP 官方从未给出的 CVSS 10.0 评分,但没有技术细节泄露。PHP 项目当晚 19:30 UTC 提前发布预告,并把发布从 10 月 22 日 14:00 UTC 提前到 21 日 14:00 UTC——发行版仍在打包,立刻发布反而会让很多用户没有现成更新可用,提前一整天被基金会称为在行动快、留出准备时间与确保人人有更新路径之间的最佳折中。

当晚的意外接连而至。约 20:00 UTC,参与报告的安全公司 Calif 误发一段视频,显示其 PoC 对多个目标有效,还暴露了少量额外细节;删除后的副本很快在社交媒体流传,加速了各种 PoC 的开发。10 月 21 日 07:41 UTC,协调发布六个多小时前,发行商 Chainguard 单方面违反披露前的保密约定,发布了包含修复的构建镜像——任何攻击者从此可以研究二进制形式的补丁,而其他 PHP 用户还在等正式发布。约 10 月 20 日 23:00 UTC 发给少数关键基础设施运营方的缓解建议也可能一并泄露。Foundation 称,安全团队紧盯了泄露后出现的各种 PoC,截至正式披露时未发现功能完整的利用。这一过程与 @gdb 的叙述吻合:原定 10 月 22 日发布,细节提前泄露后由 PHP 维护者提前至 21 日。

NÚKIB 国家级通报后:利用尝试出现,尚无确认失陷

当天 15:56 UTC,也就是 sagitz 线程发出约两小时二十分钟后, 的认证政府账号以捷克语发帖,敦促运行 PHP 的网站不要推迟更新,列出两个 CVE 与四个修复版本(PHP 8.2.35、8.3.36、8.4.27、8.5.12),指出漏洞可让攻击者未经登录远程执行代码,并给出失陷指标(IoC)示例:由 PHP 服务启动的异常进程。

利用尝试随后出现。 汇总:Cloudflare 在补丁上线前(03:02 UTC)就把防火墙规则切换为默认开启,其 CTO Dane Knecht 称「我们看到早期攻击正在出现,并随着新向量出现而更新缓解措施」,还观察到攻击者调整载荷绕过规则;watchTowr 先在 11:26 UTC 报告未见野外利用、两个 CVE 也未进入美国网络安全与基础设施安全局(CISA)的已知被利用漏洞目录,又在 14:19 UTC 更新为「正在观测到对两个 CVE 的活跃利用尝试」。截至该报道更新,没有任何来源确认某台具体服务器被成功攻破。也有机构选择预防性停机:BambooHR 在美国、加拿大与爱尔兰下线服务,并预告工资单处理会中断、暂无恢复时间;据荷兰广播公司 NOS 报道,MijnOverheid、DigiD、议会下院网站、荷兰国家网络安全中心与多个教育系统离线,中心方面称未观察到漏洞被滥用,但仍敦促所有人打补丁。

对来不及升级的站点,php.net 的通告写明:「没有任何完整的缓解措施,更新是唯一安全的选择。」把 memory_limit 设为 -1(取消应用可控的上限)、调低 post_max_size、关闭 session.upload_progress 等配置只缩小特定攻击路径。PHP 8.1 及更早版本已不在官方更新范围内,但官方为 7.4、8.0、8.1 提供了此次漏洞的最小化源码 backport(向旧版本回移植修复);PHP 8.2 将于 2026 年 12 月 31 日结束安全维护。

参考链接

More from this developing story

  • OpenAI 称前沿 AI 抢在攻击者之前发现 PHP 关键漏洞,并发布 Codex 技能协助网站自查Oct 21, 2026
  • Wiz 研究员发布 PHP2Shell 技术披露:WordPress、Drupal、Joomla 未认证 RCE 逐一演示成功Oct 22, 2026
  • AWS 称蜜罐在 PHP2Shell 公开披露前四天记录到利用尝试,并判定漏洞已被广泛利用Oct 22, 2026