The dates, version numbers and scope come from the public advisories and vendor write-ups linked below. The fleets, the sites, the patch-time distributions and the run log are simulations built to make the policies comparable. No server was contacted by this page.
The advisoriesTwo critical runtime flaws, fixed 21 Oct 2026CVE-2026-109618 and CVE-2026-109619, both rated CVSS v4 9.2, both allowing unauthenticated code execution with the web worker's privileges. Fixed in 8.5.12, 8.4.27, 8.3.36 and 8.2.35. Scope per the release notes: every installation serving web requests, whichever SAPI.
The timelineLeaked a day early, PoCs the day afterMon 20 Oct: details leaked ahead of the embargo; the PHP team published an advance notice. Tue 21 Oct ~13:30 UTC: fixed releases. Wed 22 Oct: Rapid7 noted multiple public proof-of-concepts, each tied to one OS, version and web server. Thu 23 Oct: a further PHP advisory with a mitigation but no patch yet.
Why your code could not helpThe runtime starts before the app doesA runtime flaw lives below the framework, the middleware and your validation. The vendor rated mod_php the most exposed because the flaw can be reached before any application code runs. The complete fix is a new runtime; the vendor's interim settings only reduce exposure.
How much of the web could patchAbout a third, on a covered branchBitsight's scan found that only about a third of the PHP instances whose version it could identify ran a branch covered by the release (8.2 to 8.5). The rest need a vendor backport or an upgrade first, which is why Act 2's "don't touch it" fleet barely moves.
What Act 3 is modelled onA real fleet script, with fictional sitesThe run order (feed watch, inventory from the server config, snapshot, canary, waves, health gate, auto-revert, hold, outside verification, one card) is how our own fleet tooling patches Drupal core and composer dependencies across the sites we host; the sites here are invented and the clock is compressed.