PHP Foundation发布安全更新并复盘漏洞修复与流程改进
Today's PHP security release, and how we're strengthening security
banner text stub
横幅文本占位符
Today's PHP Security Release, and How We're Strengthening PHP Security
今天的 PHP 安全发布,以及我们如何加强 PHP 安全性
Published on Oct 21, 2026
发布于 2026 年 10 月 21 日
The PHP Foundation
PHP 基金会
News Security
新闻 安全
Earlier today, the PHP project released PHP 8.5.12, 8.4.27, 8.3.36, and 8.2.35. These releases fix two critical vulnerabilities that, under the right conditions, allow an unauthenticated attacker to execute code on servers running PHP. If you run PHP, it is imperative that you update now. The announcement on php.net contains and references technical details on the vulnerabilities, attack vectors, and instructions on how to update on which systems.
今天早些时候,PHP 项目发布了 PHP 8.5.12、8.4.27、8.3.36 和 8.2.35。这些版本修复了两个严重漏洞,在特定条件下,允许未经身份验证的攻击者在运行 PHP 的服务器上执行代码。如果您运行 PHP,必须立即更新。php.net 上的公告包含并引用了有关这些漏洞的技术细节、攻击向量以及如何在不同系统上更新的说明。
This post isn't about how to update. It's about how these vulnerabilities were found and fixed, what has changed in how PHP security is handled over the past two years, and what we need from the organizations that depend on PHP to keep PHP's security work going.
这篇文章不是关于如何更新。而是关于这些漏洞是如何被发现和修复的,过去两年中 PHP 安全处理方式发生了哪些变化,以及我们需要依赖 PHP 的组织提供什么支持,以确保持续进行 PHP 安全工作。
Two related critical remote code execution vulnerabilities
两个相关的严重远程代码执行漏洞
- CVE-2026-109618 / GHSA-w8hw-w9fx-j79w: RCE via OOM corruption (out-of-memory): If a request reached PHP's memory_limit at exactly the wrong moment, PHP could leave partially initialized internal data behind and later treat it as valid, corrupting memory. On Apache with mod_php, an unauthenticated request can trigger this before any application code runs, and full remote code execution was demonstrated with default settings. Remote code execution was also confirmed on PHP-FPM through application-level code paths.
- CVE-2026-109619 / GHSA-6wmf-4rv5-p3rp: RCE via stale state: A fatal error at the wrong point could leave internal state pointing to memory that belonged to a previous request. A later request handled by the same worker could then use that freed memory. A use-after-free and worker crash were confirmed, and the reporter demonstrated remote code execution against a real-world application running on Apache with mod_php.
- CVE-2026-109618 / GHSA-w8hw-w9fx-j79w:通过内存溢出损坏(OOM)实现远程代码执行:如果请求恰好在错误时刻达到 PHP 的 memory_limit,PHP 可能会留下部分初始化的内部数据,并在稍后将其视为有效数据,从而导致内存损坏。在使用 mod_php 的 Apache 上,未经身份验证的请求可以在任何应用程序代码运行之前触发此问题,并且在默认设置下已演示了完整的远程代码执行。还确认了在 PHP-FPM 中通过应用程序级代码路径实现了远程代码执行。
- CVE-2026-109619 / GHSA-6wmf-4rv5-p3rp:通过陈旧状态实现远程代码执行:在错误点发生的致命错误可能导致内部状态指向属于先前请求的内存。随后由同一工作进程处理的请求可能会使用该已释放的内存。已确认存在释放后使用(use-after-free)和工作进程崩溃问题,报告者演示了对在 Apache 上使用 mod_php 运行的真实应用程序的远程代码执行。
Both issues sit in parts of PHP that nearly every request touches: memory management and error handling. Their central place in PHP is what made both vulnerabilities serious, and also so hard to fix without breaking compatibility, hurting performance, or forcing changes on the large ecosystem of third-party extensions.
这两个问题都位于几乎每个请求都会触及的 PHP 部分:内存管理和错误处理。它们在 PHP 中的核心地位使得这两个漏洞变得严重,同时也使得在不破坏兼容性、损害性能或迫使庞大的第三方扩展生态系统做出更改的情况下修复它们变得非常困难。
A first external audit and increased security focus
首次外部审计和安全重点的提升
In 2024, PHP underwent its first external security audit in years. The PHP Foundation secured funding from the Sovereign Tech Agency to organize this audit through OSTIF, and it was carried out by Quarkslab. While fixing one of the issues Quarkslab reported, a PHP core developer contracted by the PHP Foundation found the first signs of the OOM problem behind CVE-2026-109618. In 2024, a potential exploit for the OOM problem was theorized, but no concrete vectors were found and other concrete issues with clear impact overshadowed these concerns.
2024年,PHP经历了多年来首次外部安全审计。PHP基金会从主权技术机构(Sovereign Tech Agency)获得资金,通过OSTIF组织此次审计,并由Quarkslab执行。在修复Quarkslab报告的一个问题时,一名受PHP基金会聘用的PHP核心开发人员发现了CVE-2026-109618背后OOM问题的最初迹象。2024年,有人理论化了针对OOM问题的潜在利用方法,但未发现具体的攻击向量,且其他影响明确的具体问题掩盖了这些担忧。
To fix the OOM problem, the PHP security team developed several competing approaches, but each came with its own trade-offs: backward compatibility breaks, new denial-of-service potential, or requiring changes to many third-party extensions which seemed impossible to coordinate. The PHP security team, operating on consensus, struggled to choose between these and feared the repercussions of shipping the wrong choice. Combined with the lack of a known path to remote code execution and the small team of core developers with the necessary deep knowledge of the engine occupied with many responsibilities, this decision process caused work on a fix to stall and restart repeatedly over months. We won't pretend otherwise: the delay was a structural failure, caused by both the security team's decision process and its lack of resources. The security team has since started changing its processes, and that work continues, so that decisions can be made by majority and compromises are encouraged.
为了解决OOM问题,PHP安全团队开发了多种相互竞争的方案,但每种方案都有其自身的权衡:破坏向后兼容性、引入新的拒绝服务风险,或需要更改许多第三方扩展件,这看似难以协调。PHP安全团队基于共识运作,在这些方案之间难以抉择,并担心选错方案的后果。加上缺乏已知的远程代码执行路径,以及具备引擎深层知识的核心开发人员团队人手不足且忙于多项职责,这一决策过程导致修复工作数月来反复停滞和重启。我们不会掩饰:这次延迟是结构性失败所致,既源于安全团队的决策流程,也源于其资源匮乏。此后,安全团队已开始改变其工作流程,相关工作仍在继续,以便通过多数决做出决策,并鼓励妥协。
Building a sustainable professional security organization
构建可持续的专业安全组织
Over the last months the way PHP security work is organized has changed considerably. In May 2026, the PHP Foundation created the Ecosystem Security Team, which works alongside the PHP security team on triage, coordination, and hardening. Volker Dusch's work as AI Security Engineer in Residence at the PHP Foundation has significantly improved communication and collaboration between the PHP security team and the Foundation. Alexandre Daubois joined the PHP Foundation in July to help the PHP security team triage, handle, and fix security reports and Daniel Scherzer joined in September to take on hardening work.
在过去几个月里,PHP安全工作的组织方式发生了显著变化。2026年5月,PHP基金会成立了生态系统安全团队(Ecosystem Security Team),与PHP安全团队共同负责分类、协调和安全加固工作。Volker Dusch作为AI驻留安全工程师在PHP基金会的工作,显著改善了PHP安全团队与基金会之间的沟通与合作。Alexandre Daubois于7月加入PHP基金会,协助PHP安全团队对安全报告进行分类、处理和修复;Daniel Scherzer于9月加入,负责安全加固工作。
Earlier this year, we worked with Alpha-Omega to scan PHP with Anthropic's Claude Mythos. But since the Mythos scan, we have added other tools, including OpenAI's Daybreak Red for validating reports and exploits, alongside sanitizer builds and reproduction environments that match our CI on every platform PHP supports.
今年早些时候,我们与 Alpha-Omega 合作,使用 Anthropic 的 Claude Mythos 对 PHP 进行了扫描。但在 Mythos 扫描之后,我们又引入了其他工具,包括用于验证报告和漏洞利用程序的 OpenAI Daybreak Red,以及与我们在 PHP 支持的所有平台上 CI 相匹配的 sanitizer 构建和复现环境。
The PHP Foundation got the PHP project into the Patch the Planet program, as part of which security firm Calif began an audit of PHP on July 30th, 2026. On August 11th researcher Ryan A at Calif reported an unconditional remote code execution with the same root cause as the OOM problem we had found in 2024. OpenAI independently reported the same root cause on the same day, followed by further attack vectors from OpenAI on September 18th and from Wiz on August 24th. More recently, Trail of Bits has also been auditing PHP. The reports from Calif, OpenAI, and Wiz made the full impact of the OOM problem clear, and from August 11th onward, fixing it became the top priority for all of the PHP Foundation's team working on security. Without the Foundation’s funding it would have been impossible to have multiple people work on this issue full time, eventually through weekends and around the clock to coordinate and communicate with other involved parties.
PHP 基金会使 PHP 项目加入了“Patch the Planet”计划,作为该计划的一部分,安全公司 Calif 于 2026 年 7 月 30 日开始对 PHP 进行审计。8 月 11 日,Calif 的研究员 Ryan A 报告了一起无条件远程代码执行漏洞,其根本原因与我们在 2024 年发现的 OOM(内存耗尽)问题相同。OpenAI 在同一天独立报告了相同的根本原因,随后 OpenAI 于 9 月 18 日、Wiz 于 8 月 24 日又分别报告了更多的攻击向量。最近,Trail of Bits 也在对 PHP 进行审计。来自 Calif、OpenAI 和 Wiz 的报告清楚地揭示了 OOM 问题的全部影响,从 8 月 11 日起,修复该问题成为 PHP 基金会所有安全团队成员的首要任务。如果没有基金会的资助,就不可能有多人全职投入此问题,最终通过周末和全天候工作来协调并与各方沟通。
The growth of AI-assisted research also means the PHP security team receives far more reports than before. As Alexandre Daubois described last week in How the PHP Security Team Handles Your Reports, the team has published 15 CVEs since July 1st and worked through more than 100 reports that turned out to be invalid, duplicates, or not reproducible. AI helps the team validate reports and group reports sharing the same root cause, but a person makes every call and works on every patch.
AI 辅助研究的兴起也意味着 PHP 安全团队收到的报告比以往多得多。正如 Alexandre Daubois 上周在《PHP 安全团队如何处理您的报告》一文中所述,自 7 月 1 日以来,该团队已发布了 15 个 CVE,并处理了超过 100 份最终被判定为无效、重复或无法复现的报告。AI 帮助团队验证报告并对具有相同根本原因的 report 进行归类,但每一项决策都由人工做出,每个补丁也由人工编写。
Leak and disrupted disclosure
泄露与披露中断
The coordinated disclosure of these vulnerabilities worked well until 2 days ahead of the targeted release date.
这些漏洞的协调披露工作一直进展顺利,直到距离目标发布日期仅剩 2 天。
On Tuesday, October 20th, at around 15:00 UTC, the two CVE IDs began circulating on online forums and social media. They came with a wrong release time and a wrong CVSS score of 10.0 (the actual score is 9.2). No technical details leaked. In response, the PHP project brought its pre-announcement forward and published it at 19:30 UTC. It also moved the release from October 22nd, 14:00 UTC, to October 21st, 14:00 UTC. Distributors were still packaging the fix, so releasing immediately would have left many users without an easy way to update. Moving the release forward by one day was the best compromise between acting quickly, giving people time to prepare, and making sure everyone had a simple update path when the vulnerabilities were disclosed.
10月20日(星期二)UTC 时间约 15:00,两个 CVE ID 开始在在线论坛和社交媒体上流传。它们附带了错误的发布日期和错误的 CVSS 评分 10.0(实际评分为 9.2)。没有技术细节泄露。对此,PHP 项目将预公告提前,并于 UTC 时间 19:30 发布。同时,它将发布时间从 10 月 22 日 UTC 时间 14:00 提前至 10 月 21 日 UTC 时间 14:00。由于发行商仍在打包修复程序,立即发布会导致许多用户无法轻松更新。将发布时间提前一天是在迅速行动、给予人们准备时间以及确保在漏洞披露时每个人都能拥有简单的更新路径之间做出的最佳妥协。
As a result of the leak and pre-announcement around 20:00 UTC, Calif, one of the security firms that had reported the issues mistakenly published a video. It showed their proof of concept working against a number of targets and revealed a few additional, though limited, details about the vulnerabilities. Copies of the deleted video started circulating on social media soon after. The video contributed to accelerated development of various PoCs (exploitation proof of concepts), which then increased circulation on October 21st.
由于大约 UTC 时间 20:00 的泄露和预公告,曾报告这些问题的安全公司之一的 Calif 错误地发布了一段视频。该视频展示了他们的概念验证(PoC)针对多个目标的运行情况,并透露了一些关于漏洞的额外但有限的细节。被删除的视频副本随后很快在社交媒体上开始流传。这段视频促进了各种 PoC(利用概念验证)的开发加速,进而导致其在 10 月 21 日的传播增加。
Mitigation advice we started providing to a few critical infrastructure providers around Oct 20th 23:00 UTC, may have leaked as well. The PHP security team closely monitored and inspected appearing PoCs after the leak but did not identify any functional exploits at the time of release/public disclosure.
我们于 10 月 20 日 UTC 时间 23:00 左右开始向一些关键基础设施提供商提供的缓解建议可能也已泄露。PHP 安全团队在泄露后密切监控并检查出现的 PoC,但在发布/公开披露时未发现任何功能性漏洞利用。
更进一步:量化金融体系
看懂新闻只是起点——沿量化金融路径,把它变成能交付的工程能力