Your PHP estate. A CVSS 9.2 emergency patch window. One afternoon to decide what your organization actually does — before the facts are all in.
Available from October 22, 2026 — as a facilitated session for your team, or in a public Open Table exercise.
At 01:30 ET, PHP announces an out-of-cycle security release for two critical vulnerabilities rated CVSS 9.2. The notice names no component, no affected versions, and no workaround. Your inventory says you run 42 PHP pools. Your inventory is 58% complete. The exercise starts there.
Eight roles, each optimizing for something real — and not the same thing. AI characters fill any seat your team doesn't staff, and play their brief at full strength.
Owns the incident record, the decision sequence, and the patch-window call. Optimizing for: a defensible record of who decided what, when, and on which facts.
Owns exposure judgment and containment. Optimizing for: never calling something "confirmed" that isn't — and never letting caution become paralysis.
Owns the serving runtimes — FPM pools, web servers, containers, the edge. Optimizing for: changes that actually take effect in the processes serving traffic.
Owns the business applications running on PHP. Optimizing for: knowing what can be degraded, isolated, or patched first — and what each choice costs the business.
Owns telemetry and hunting — WAF and proxy logs, worker crashes, EDR. Optimizing for: evidence preserved before it's rotated away, and compromise scoped before it's rebuilt over.
Owns internal and external statements. Optimizing for: one calibrated voice — what is known, what is not, and when the next update lands.
Owns disclosure posture and notification thresholds. Optimizing for: statements the organization can still stand behind when the facts finish arriving.
Owns business continuity and spend, and argues at full strength against breaking production chasing an unverified root cause. Dissent is a designed role in every TableX exercise: the room is scored on how it answers the critic — with evidence, or not at all.
The scenario is scored across seven dimensions — evidence discipline, runtime inventory quality, interim-mitigation judgment, patch execution and verification, containment and scoping, stakeholder communication, and dissent handling. These are the muscles it works hardest:
From the first decision, the room keeps a ledger separating what is confirmed, what is merely reported, and what is only claimed. Most real incidents fail here first — long before they fail technically.
The exercise offers an interim configuration change that feels decisive. The official advisory is explicit that no configuration change makes an installation safe — it narrows one attack path and leaves the rest. Rooms are scored on whether they can tell the difference, and whether they re-open the decision when challenged.
"Patched" is proven from execution — worker start times, binaries actually loaded, effective configuration, traffic drained from old pools — not from what the package database reports.
Internet-facing first, suspected next, internal last — across supported branches, distribution backports, hosted platforms, and an end-of-life pool with no patch at all. Unpatchable is a decision, not a status.
When a suspected pre-advisory compromise surfaces, patching, containment, and evidence preservation become three separate workstreams. The exercise grades whether the room notices before the rebuild destroys the answers.
What to tell the largest customer when the honest answer is "one pool is suspected, the rest is still being scoped" — calibrated, minuted, and timed, with counsel in the room.
A facilitated tabletop exercise run live on TableX — one session, decisions in real time, every decision and its evidence recorded as you go.
This is not a hypothetical. The exercise is built directly on the PHP security event of October 21, 2026 — announced, leaked, argued about, and resolved in public, in roughly the order the scenario runs it.
PHP published emergency security releases fixing two critical unauthenticated remote code execution vulnerabilities, both rated CVSS 9.2: CVE-2026-109618 (remote code execution via out-of-memory corruption) and CVE-2026-109619 (remote code execution via stale global state). All PHP installations serving web requests are in scope, with the highest risk for mod_php. Fixed versions:
PHP 8.5.12PHP 8.4.27PHP 8.3.36PHP 8.2.35
"There are no complete mitigations, updating is the only safe choice." — PHP security advisory, October 21, 2026
The advisory's interim measures are explicitly partial: disabling session upload progress blocks only the confirmed session paths of one of the two vulnerabilities, and the memory-limit guidance for the other removes one controllable trigger, not the flaw. PHP 8.1 and older receive no updates from the PHP project, though minimal source backports were published for 7.4, 8.0, and 8.1 for those building from source. Reports of exploitation circulated within hours of the announcement; the advisory itself makes no exploitation claim, and none had been independently confirmed at publication. A public lab reproduction appeared the same day, under bounded preconditions — which is exactly the distance between claimed and confirmed that this exercise trains.
Book a facilitated PHP2Shell session for your own team — your estate's shape, your decision-makers, your critic — or take a seat in a public Open Table exercise and see how another room handles the same afternoon.
Or explore the live TableX demo →