PHP2Shell:AI 挖出 PHP 潜伏 14 年的漏洞,开发者现在该做什么

PHP2Shell(CVE-2026-109618/109619)由研究人员借助 GPT-5.6 Sol 和 Gemini 4 Argon 发现,2026 年 10 月 21 日修复。哪些已确认、哪些仍在变化,以及升级、密钥轮换和 AI 代码审查的具体做法。

标题 PHP2SHELL,下方是绿色发光的密封引擎舱,副标题 A 14-year-old PHP flaw, patched Oct 21, 2026,标签为 CVSS 9.2、Patch the runtime、Rotate keys

PHP2Shell 这件事里,最值得记住的一句话不是 AI 公司说的,而是 PHP 基金会说的。

2024 年 PHP 做外部审计时,一位核心开发者就发现了其中一个漏洞的迹象。但当时没人能证明它可以导致代码执行,修复方案争了几个月也没定下来。基金会现在把这次拖延称为“结构性失败”。两年后,研究人员借助前沿模型,用大约一周时间把同一个弱点做成了无需登录就能利用的完整攻击链。OpenAI 总裁 Greg Brockman 说,这个漏洞在 PHP 里已经存在了 14 年。

变化就在这里。AI 没有发明新的漏洞类型,它让一个“已知但没被证明能利用”的老问题,武器化的成本变得很低。本文写给两类人:在某处跑着 PHP 的开发者和平台团队(通常比你以为的地方更多),以及把 AI Agent 架在 Web 基础设施上、手里握着 API Key 的人。下面把截至 2026 年 10 月 25 日已确认的事实和仍在变化的部分分开,最后给出这周值得做的事。

先说结论

  • PHP2Shell 指 PHP 引擎中的两个漏洞:CVE-2026-109618 和 CVE-2026-109619,CVSS v4.0 评分 9.2。PHP 于 2026 年 10 月 21 日在 8.5.12、8.4.27、8.3.36、8.2.35 中修复,PHP 5.4 以来的版本都受影响。
  • 发现者是 Wiz、Calif 和 OpenAI 的 Codex Security 团队(Cloudflare 还列出了 Quarkslab)。Calif 用的是 GPT-5.6 Sol,Wiz 用自家工具配合 Gemini 4 Argon 和 GPT-5.6 Sol。
  • 信息提前泄露,披露被迫提前一天。补丁发布前 Cloudflare 就已经看到攻击流量,watchTowr 当天下午报告了针对两个漏洞的主动利用尝试。
  • 10 月 23 日,PHP 又披露了相关漏洞 CVE-2026-115560,已打补丁的版本(包括 8.5.12)也受影响,将在下一个常规版本中修复。
  • 要升级的是 PHP 运行时,不是应用本身。升级后重启 worker。没打补丁的服务器如果经手过 API Key,就把 Key 换掉。

事件经过

原定 10 月 22 日披露,最后提前到了 10 月 21 日。提前的原因,对所有需要协调修复的团队都有参考意义。

时间(2026,UTC)事件来源
2024 年PHP 外部审计发现内存耗尽漏洞的早期迹象,没找到利用路径,修复搁置PHP 基金会,经 The Hacker News 转述
8 月 19–24 日Wiz 发现第一个漏洞,在 Drupal 和 WordPress 上演示未授权 RCE,并报告给 PHPThe New Stack,引述 Wiz
8 月Calif 在 OpenAI 的 Patch the Planet 计划中用 GPT-5.6 Sol 发现其中一个漏洞OpenAI;时间据 Brockman 的 X 帖子,经 Mashable(Yahoo 转载)
9 月OpenAI 自己的团队独立发现了更完整的版本Greg Brockman 的 X 帖子,经 Mashable 转述
10 月 20 日约 15:00CVE 编号泄露,附带错误的 10.0 评分The Next Web、The Hacker News
10 月 20 日约 20:00Calif 误发了可用 PoC 的演示视频PHP 基金会,经 The Hacker News
10 月 21 日 03:02Cloudflare WAF 规则对所有套餐默认开启Cloudflare
10 月 21 日 07:41Chainguard 比官方早约 6 小时发布了含补丁的镜像PHP 基金会,经 The Hacker News
10 月 21 日约 14:00PHP 发布 8.5.12、8.4.27、8.3.36、8.2.35;CISA 要求立即升级The Hacker News、CISA
10 月 21 日 14:19watchTowr 报告两个 CVE 都出现主动利用尝试The Hacker News
10 月 23 日PHP 披露会话上传进度功能中的 CVE-2026-115560,已打补丁的版本也受影响Cloudflare(更新说明)

另外,亚马逊威胁情报团队称,在披露前四天的 10 月 17 日,它的蜜罐就捕获到一次利用尝试。这条信息来自 The Hacker News 的报道,我没有看到亚马逊的原始数据。

The Hacker News 2026 年 10 月 21 日的文章,标题为 PHP Issues Emergency Patches for Two Critical PHP2Shell RCE Flaws as Exploit Attempts Emerge,正文写明修复版本为 PHP 8.5.12、8.4.27、8.3.36 和 8.2.35,且只有升级才能完全保护服务器 The Hacker News,2026-10-25 截图:四个修复版本,以及 PHP“只有升级才是完整修复”的立场。标题和首段拼接而成,中间的漏洞演示图和广告已去掉。

已确认与尚不清楚

已确认(有来源)尚不清楚或有争议
两个 CVE,CVSS v4.0 9.2,PHP 引擎层的未授权远程代码执行实际有多少服务器被攻破。截至 10 月 21 日,没有来源确认具体的入侵案例
修复版本 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35,7.4、8.0、8.1 有源码补丁各发行版的回移补丁是否都覆盖了两个 CVE,需要逐个看软件包 changelog
mod_php 风险最高,FPM、php-cgi、FrankenPHP、LiteSpeed 也受影响CVE-2026-109618 在 FPM 上有没有完整利用。PHP 称 FPM 存在风险,但还没人演示过
不执行代码也能读取 worker 内存,包括其他请求的 Token 和 KeyCVE-2026-115560 的完整影响范围和修复时间
发现过程用到了 GPT-5.6 Sol 和 Gemini 4 Argon模型和研究人员各做了多少。Calif 认为,了解目标的历史依然关键

最后一行要谨慎看待。Wiz 说,一个研究员借助前沿模型,用一周左右完成了过去可能要一个团队花几个月的工作。Calif 补充说,现有模型还不能可靠地从冷门的、二十年前的利用原语出发自己找到路。两种说法并不矛盾:模型压缩了中间最费力的环节,也就是把多个弱点串成可用的利用链。指对方向的仍然是人。

对用 AI 做产品的人意味着什么

补丁窗口变短了,而且不会再变长

过去的披露机制默认,攻击者要花几周才能从补丁 diff 反推出利用方法。10 月 21 日这天的情况是:官方发布前 6 小时,网上已经有了含补丁的容器镜像;前一晚有 PoC 视频流出;几小时内,攻击载荷就开始变着花样绕过 Cloudflare 规则。OpenAI 自己也写道,找到这些漏洞的能力“同样可以帮助攻击者快速开发攻击工具和利用代码”。

对开发者来说,遇到运行时级别的高危漏洞,“等下个维护窗口再升级”已经不算计划了。你需要一条一天内能把运行时更新推上生产的路径,还要清楚每一个运行时部署在哪里。

你的 Agent 技术栈里,多半有 PHP

很多 AI 产品的主应用不跑 PHP。但官网、WordPress 博客、老后台、供应商的计费门户,或者几年前随手拉的某个容器基础镜像里,常常有 PHP。The Hacker News 特别提醒:升级 WordPress 或 Laravel,不会顺带升级底层的 PHP 运行时。运行时要靠系统软件包、托管商或容器镜像来更新。

内存读取这条路径,Agent 开发者最该警惕。PHP 称,攻击者可以读到 worker 内存里属于其他请求的密码、Token、API Key 和证书。如果某个 PHP 服务代理过模型 API 调用、发送过带签名密钥的 webhook,或者在 session 里存过 OAuth Token,而且 10 月 20 日之后还没打补丁,就应该假定这些密钥可能已经泄露。

AI 挖漏洞成了厂商功能,也成了防守方的固定成本

OpenAI 随后提出了五阶段的披露框架,并通过 Daybreak for Frontline Defenders 承诺提供 10 亿美元的补贴使用额度。它还发布了一个 PHP 版本检查工具,附带两个 Codex skill。The New Stack 提醒,这个工具能识别有漏洞的版本,但无法确认厂商的回移补丁有没有生效。Brockman 还提到,同一天 Node.js 也披露了一个 RCE;OpenAI 则表示,预计这类发现会大幅增加。

The New Stack 2026 年 10 月 21 日 Amanda Caswell 的文章,标题为 AI found flaws in the code behind 70% of the web. The fix took two months.,副标题称借助前沿 AI 发现的两个 PHP 高危漏洞让 WordPress、Drupal 和 Joomla 面临风险,OpenAI 希望建立新的应对流程 The New Stack,2026-10-25 截图。上文 Wiz 的时间线(8 月 19–24 日)和 OpenAI 五阶段框架的概述都来自这篇报道。

同一周,月之暗面发布了 Kimi K3.1 Pro,开放权重之前特意剔除了网络安全相关的训练数据,但它在自家未公开的漏洞利用测试上仍有 81% 的通过率。详见 Kimi K3.1 Pro 发布解读。两件事放在一起,现状很清楚:各家实验室都承认这种能力是真实存在的,分歧在于该把它交给谁。对开发者来说,实际的结论是:不用这类模型的防守方,现在是慢的那一边。

开发者现在可以做什么

按顺序来。前三条处理 PHP2Shell 本身,后面几条是为下一次做准备。

  1. 盘点运行时,而不是应用。 列出所有提供 PHP 服务的主机、容器镜像和托管服务,官网和供应商托管的工具也算在内。用托管主机的,直接问服务商。
  2. 升级并重启。 安装 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35,或者 changelog 里明确写了两个 CVE 的发行版软件包,然后重启 Apache、PHP-FPM 和所有常驻 worker。回移补丁的软件包,光看版本号可能会误判。
  3. 配置调整只是临时措施。 两个 CVE 的临时设置不同:CVE-2026-109618 靠内存和请求大小限制,CVE-2026-109619 靠 session.upload_progress.enabled=0(8.5 上再加 fatal_error_backtraces=0)。关闭上传进度对 109618 没有作用;PHP 还提醒,不要用 RLIMIT_AS 或 RLIMIT_DATA 代替。这些都不能让服务器变安全。CVE-2026-115560 也在上传进度功能里,所以继续关闭它看起来是合理的临时做法,但这是我们的推断。以 PHP 安全公告为准,并留意下一个常规版本。
  4. WAF 规则保持开启,但别依赖它。 Cloudflare 自己说这些规则只是纵深防御,并要求客户打补丁。针对 CVE-2026-115560,Cloudflare 说改过 session.upload_progress.name 的站点不在规则覆盖范围内。
  5. 轮换经手过未打补丁 PHP 的密钥。 模型 API Key、webhook 签名密钥、OAuth client secret 优先处理。和解释一次密钥泄露相比,轮换的成本很低。
  6. 排查更早之前的入侵迹象。 研究人员建议关注这些信号:异常的 multipart 请求后紧接着内存上限报错或成批的 HTTP 500、尺寸异常大的 PHPSESSID cookie、无法解释的 worker 重启。
  7. 赶在别人之前,用前沿模型审查你自己的代码。 对象只限你自己拥有的代码:请求解析、错误处理和清理路径,以及所有用 C 写或涉及不安全内存操作的部分。审查放在沙箱里跑,结果由人工复核研判。找到这类漏洞的模型,可以通过 SandBase 上的 GPT-5.6 Sol 调用。它给出的发现是要核实的线索,不是结论。

SandBase 上 GPT-5.6 Sol 的模型页,模型 ID 为 openai/gpt-5.6-sol,介绍其为 OpenAI GPT-5.6 系列的旗舰档,定位编码、知识工作、网络安全和科学任务,标注 10% OFF,输入 3.60 美元、输出 18.00 美元每百万 token,原价 4.00 和 20.00 美元划线显示,上下文 1.1M,最大输出 128K SandBase 模型目录,2026-10-25:GPT-5.6 Sol 标价 3.60 / 18.00 美元,原价 4 / 20 美元划线显示,当天有 10% 折扣。SandBase 只是把调用路由到 OpenAI 的模型,与 PHP2Shell 的研究没有关系。

想了解哪些模型面向安全场景、各自的访问规则有什么不同,可以看我们的 AI 网络安全模型对比。

常见问题

PHP2Shell 是什么? 它是 CVE-2026-109618 和 CVE-2026-109619 的统称。两者都是 PHP 引擎在请求失败后清理内存时的内存安全漏洞,都能导致未授权远程代码执行。PHP 给出的 CVSS v4.0 评分是 9.2。

哪些 PHP 版本修复了 PHP2Shell? PHP 8.5.12、8.4.27、8.3.36 和 8.2.35,均于 2026 年 10 月 21 日发布。PHP 8.1 及更早版本已停止维护,官方为 7.4、8.0、8.1 提供了源码补丁。发行版的修复版本号可能看起来比较旧。

真的是 AI 发现了 PHP2Shell 吗? AI 起了作用。OpenAI 称,Calif 用 GPT-5.6 Sol 发现了其中一个漏洞。据 The New Stack 报道,Wiz 用自家工具配合 Gemini 4 Argon 和 GPT-5.6 Sol 发现了两个漏洞。研究人员说,模型主要加快了把老弱点变成可用利用链的过程。

只升级 WordPress 够吗? 不够。漏洞在 PHP 运行时里,需要通过系统软件包、容器镜像或托管商升级 PHP 本身,然后重启 PHP worker。

升级到 8.5.12 就完全安全了吗? 还不算。10 月 23 日 PHP 披露了会话上传进度功能中的 CVE-2026-115560,已打补丁的版本也受影响,将在下一个常规版本中修复。持续关注 PHP 的安全公告,保留补偿性措施。

总结

PHP2Shell 不是第一个借助 AI 发现的漏洞,但它严重到同一周内 Wikipedia、DigiD 等荷兰政府服务和薪资服务商 BambooHR 都为打补丁先行下线(The Hacker News、Mashable)。漏洞本身是老的,变的是从“理论上存在”到“能用的攻击”之间的时间。升级运行时,轮换可能泄露的密钥,再开始用同类模型审查你自己的代码。下一次披露,留给你的时间可能更少。

Cloudflare 2026 年 10 月 21 日的博客 Cloudflare deploys protections against php2shell vulnerability,更新说明称 10 月 23 日 PHP 发布了 CVE-2026-115560 的公告,该漏洞位于会话上传进度功能,影响包括 8.5.12 在内的已打补丁版本;修改过 session.upload_progress.name 的站点不在 WAF 规则覆盖范围内 Cloudflare 博客,2026-10-25 截图,含 10 月 23 日关于 CVE-2026-115560 的更新。标题区和更新段落拼接而成,装饰性头图已去掉。

资料核对于 2026-10-25:The Hacker News、Cloudflare、The New Stack、Mashable(Yahoo 转载)、CISA 公告、The Next Web、OpenAI Patch the Planet。OpenAI、CISA 和 The Next Web 的页面曾拒绝自动抓取,相关内容通过上述其他报道交叉核实。