The honest view from inside technical leadership
Analysis

Security & compliance

Independent reporting on the systems, funding, and decisions shaping enterprise AI security.

Security · News

PHP RCE Vulnerabilities Traced to a 2024 Finding Whose Fix Stalled for Months

The bug was found two years before AI tools proved it could be exploited. What held up the patch was a team that could not choose between imperfect fixes.

Line-art illustration of an hourglass beside three forking paths that end at a closed gate, representing the stalled fix for the PHP RCE vulnerabilities

The PHP RCE vulnerabilities patched on October 21, 2026 grew from a flaw the PHP project first spotted in 2024 and then failed to fix for months. The PHP Foundation says its security team kept stalling between competing patches until AI-assisted researchers proved in August 2026 that the bug gave attackers unauthenticated remote code execution.

Two PHP RCE Vulnerabilities Sit in Code Nearly Every Request Touches

PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 fix two critical bugs that can let an attacker run code on a server without logging in. CVE-2026-109618 is triggered when a request hits PHP’s memory limit at the wrong moment, leaving half-built internal data that cleanup later treats as valid. CVE-2026-109619 lets internal state from one request outlive its memory, so a later request on the same worker reads freed memory. The PHP Foundation says remote code execution was demonstrated against Apache with mod_php under default settings, before any application code ran, and also confirmed on PHP-FPM through application paths. The foundation scores the flaws at 9.2 on CVSS. Both live in memory management and error handling, which is why they were hard to fix without breaking compatibility or slowing PHP down.

The Root Cause Surfaced in a 2024 Audit and Then Waited

In 2024 the Sovereign Tech Agency funded PHP’s first external security audit in years, arranged through OSTIF and carried out by Quarkslab. While fixing one of Quarkslab’s findings, a core developer contracted by the PHP Foundation found the first signs of the out-of-memory problem behind CVE-2026-109618. An exploit was theorized that year, but nobody found a concrete attack path, and other bugs with clearer impact took priority.

The security team drafted several fixes. Each carried a cost: a backward compatibility break, a new denial-of-service risk, or changes to many third-party extensions that seemed impossible to coordinate. The team made decisions by consensus, could not agree, and feared shipping the wrong option. The foundation says work on the fix stopped and restarted repeatedly over months, and it calls the delay a “structural failure” of both process and resources.

AI-Assisted Audits Turned a Theory Into a Working Exploit in August 2026

The PHP Foundation enrolled PHP in OpenAI’s Patch the Planet program, and security firm Calif began auditing PHP on July 30, 2026. On August 11, Calif researcher Ryan A reported an unconditional remote code execution with the same root cause found in 2024. OpenAI independently reported that root cause on the same day. Wiz reported further attack vectors on August 24, and OpenAI added more on September 18. TechCrunch’s Julie Bort reported that Wiz used its own security agent alongside Gemini and GPT models in its work. From August 11, the foundation says, the fix became the top priority for everyone on its security staff, eventually working weekends and around the clock.

The same tools have changed the team’s workload. The foundation says it has published 15 CVEs since July 1, 2026, and worked through more than 100 reports that proved invalid, duplicated or impossible to reproduce.

A Leak Pulled the PHP Release Forward by a Day

The coordinated disclosure held until two days before the planned release. Around 15:00 UTC on October 20, the two CVE IDs began circulating online with a wrong release time and an inflated CVSS score of 10.0. PHP moved its pre-announcement up to 19:30 UTC that evening and shifted the release from October 22 to October 21 at 14:00 UTC. The foundation says Calif then mistakenly published a proof-of-concept video, which sped up public exploit work, and that Chainguard published fixed images at 07:41 UTC on October 21, more than six hours ahead of the agreed release. BBC News reported that Finland temporarily shut down its government’s public web services and that the Wikimedia Foundation took several systems offline as a precaution.

The UK’s National Cyber Security Centre told organizations to inventory every PHP installation, prioritize internet-facing systems, apply the PHP team’s temporary mitigations if they cannot update, and consider taking a system offline if they can do neither.

Why This Matters for Engineering Leadership

Finding the PHP flaw was never the problem. The project knew about the root cause in 2024. The delay came from a decision with no good option and a team that required unanimous agreement to pick one. The foundation’s own fix is to let the security team decide by majority and to make sure a stuck fix reaches foundation leadership quickly. Any engineering organization carries the same risk in its own backlog: a known defect parked because every remedy breaks something. Leaders should keep a short list of security fixes blocked on trade-offs, put a named owner and a deadline on each, and define who breaks the tie when the team cannot. AI tools now turn a theorized exploit into a working one in weeks, so the gap between a known bug and an exploitable one is shrinking. The NCSC’s first instruction also deserves a direct answer from every team: can you list every system running PHP, including vendor appliances that bundle it, today?

FAQ

What are the PHP RCE vulnerabilities disclosed in October 2026?

They are CVE-2026-109618, an out-of-memory corruption bug, and CVE-2026-109619, a use-after-free from stale request state. Both can allow unauthenticated remote code execution on servers running PHP.

Which PHP versions fix CVE-2026-109618 and CVE-2026-109619?

PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35, released on October 21, 2026. PHP 8.1 and older no longer receive official updates, though the security team published minimal source backports for 7.4, 8.0 and 8.1.

When was the root cause of the PHP flaw first found?

In 2024, while a PHP Foundation contractor was fixing an issue from an external audit by Quarkslab. No working exploit path was known then, and the fix stalled over competing approaches.

Who reported the exploitable PHP vulnerabilities in 2026?

Ryan A at security firm Calif reported an unconditional remote code execution on August 11, 2026, the same day OpenAI independently reported the root cause. Wiz followed on August 24 and OpenAI added more vectors on September 18.

What should organizations do if they cannot patch PHP immediately?

The UK’s National Cyber Security Centre says to apply the PHP team’s temporary mitigations, and if that is not possible, to consider taking the system offline and check it for signs of compromise.

Source: PHP armageddon: OpenAI, Google’s Wiz find ancient holes, panicking the internet by Julie Bort, TechCrunch, October 21, 2026. Primary sources: Today’s PHP Security Release, and How We’re Strengthening PHP Security, The PHP Foundation, October 21, 2026; Critical security issue affecting PHP, UK National Cyber Security Centre, October 21, 2026.

Read more news & analysis