Research collected from outside sources and what this site derives from them; every fact links to a saved copy of its source Research or story?

Briefing for Avery, cto · Some technical · from the same 70 claims, selected and ordered for one reader

What does this cost us in engineering time, what breaks when we patch, and what do we change so the next one is a non-event?

This briefing v8 written in site v0.17.0 on 24 October 2026 · history and changes, 7 earlier

The answer in thirty seconds

Patch internet-facing mod_php first, then FPM, then the rest; restart every worker and rebuild every image. The fix changes how PHP behaves when memory runs out, so test under load. 7.4 to 8.1 have no release. Afterwards, invest in an inventory that answers 'where is PHP' in minutes.

Read the site as Avery →

What the patch changes, what it breaks, and what to change afterwards. The fix is a redesign of how PHP handles running out of memory, so behaviour under memory pressure changes, and it touched 389 files.

What to decide or do

Your reading path

  1. Your briefing 4 min
  2. The two flaws 4 min
  3. The code 7 min
  4. If you run PHP 3 min
  5. Detection and defence 3 min

About 21 minutes in all. Choose read as Avery and the bar under the menu keeps your place on every page.

What this briefing covers

  • patch order
  • what the fix changes in behaviour
  • the end-of-life versions
  • time-to-pull-the-plug as a platform property

What you can skip

  • the disclosure politics

Words you will meet

PHPmod_phpPHP-FPMPatchBackportShellEnd of lifePrimary sourceCVSSVulnerabilityGitHub advisory (GHSA)Remote code execution (RCE)Out of memory (OOM)longjmp

Each is underlined where it first appears; hover or tap for a one-line definition, or open the glossary.

The facts this rests on

ClaimWho says itStatusFact-checkPrimarySources
Two critical vulnerabilities, CVE-2026-109618 and CVE-2026-109619, each CVSS v4.0 9.2, fixed in PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 fact timeline →PHP Group (CNA), GitHub advisories, php.netconfirmedA6 Established5/5CVE record CVE record PHP PHP php.net
Unauthenticated RCE over HTTP against Apache mod_php with default settings, before any application code runs fact timeline →PHP security team (GHSA, oss-security), php.netconfirmedA6 Established3/3PHP oss-security php.net
The fix removes longjmp() for out-of-memory errors in favour of a delayed soft OOM at the next VM safe point and a hard OOM via _exit(); the changelog line is 'Avoid state corruption via bailout' fact timeline →PHP security teamconfirmedA6 Established3/3PHP php.net php-src
Updating is the only complete mitigation; the configuration measures reduce exposure to specific paths and do not make an installation safe fact timeline →php.net; PHP security teamconfirmedA6 Established3/3php.net oss-security PHP
Triggering the bug is much easier than turning it into code execution; the CVSS vector says attack complexity high
Fastly: 'most deployments may be safe from RCE. Do not assume this holds true for you.' Imperva: five demonstrated techniques, three via session upload progress; about 67 KB of memory disclosed per attack.
fact timeline →
Imperva; Fastly; the CVE recordconfirmedA3 Echoed opinion status overstated3/3Imperva Threat Research Fastly CVE record
Both bugs are in the C engine, not in PHP code: the allocator's longjmp-based bailout on out-of-memory, and request globals that survive a failed request
The fix replaces bailout with a delayed error and an UnwindExit at a safe point, adds a hard limit that _exits, and resets the globals. See the code page.
fact timeline →
php/php-src fix commit; the GitHub advisoriesconfirmedA6 Established3/3php/php-src, read from a clone PHP PHP
In researchers' own tests, pre-authentication RCE was confirmed against WordPress, Drupal, Joomla, MediaWiki, Roundcube, Magento, phpMyAdmin, Nextcloud, Laravel, Symfony and WHMCS
Two researcher parties, no third-party reproduction in the vault. The demo videos were not downloaded.
fact timeline →
Calif; Wiz for WordPress and DrupalreportedA2 Reported2/2Calif Wiz
None of the public proof-of-concept exploits reviewed by VulnCheck has the correct mechanism; a lab reproduction of the leaked PoC's precondition produced a clean 200
The Hacker News says the same of the public code. Fastly: working RCE needs knowledge of the running binary's layout on x86_64.
fact timeline →
rjmendez (detection author) citing VulnCheck; HuntressreportedA1 Weak signal status overstated1/2rjmendez, GitHub Huntress
Patching the demonstrated paths does not make the bailout mechanism safe; more paths should be expected
A position, from a vendor; consistent with the Fediverse report of a third bug.
fact timeline →
FastlyreportedA2 Reported opinion1/2Fastly oss-security
Remote code execution is confirmed on PHP-FPM
GHSA-w8hw (CVE-2026-109618): 'no complete FPM exploit has been demonstrated for this SAPI'. The Foundation blog: RCE 'was also confirmed on PHP-FPM through application-level code paths'. GHSA-6wmf (CVE-2026-109619): session lifecycle RCE 'validated against mod_php and FPM'. The accounts may refer to different CVEs.
fact timeline →
PHP Foundation blog; GHSA-6wmf for the session pathdisputedA6 Established4/4PHP Foundation PHP PHP oss-security
All PHP versions from 5 onwards are affected by at least one of the flaws
The CVE records list only 8.2 to 8.5 with defaultStatus 'unaffected'. php.net published source backports for 7.4, 8.0 and 8.1, which implies they are affected. A scanner that trusts the CVE record will miss 7.4 to 8.1.
fact timeline →
NCSC-NL; Wiz ('>= 5.4'); CERT-FR (5.x, 6.x, 7.x, 8.0, 8.1)disputedA3 Echoed disputed3/4NCSC-NL Wiz on X CERT-FR oss-security
A web application firewall may provide some protection until systems are patched
Swiss BACS: 'Even a web application firewall alone is not sufficient.' Cloudflare says its rules blocked the traffic it saw and that attackers mutated payloads to get past them.
fact timeline →
CISAdisputedA6 Established3/3CISA BACS Cloudflare
The flaws are CVSS 10.0
The PHP Foundation: 'a wrong CVSS score of 10.0 (the actual score is 9.2)'. Daubois traces it to a social post relayed by Phoenix Security and to watchTowr via Cyber Daily.
fact timeline →
social posts on 20 October, relayed by a vendor and a news sitecontradictedrefuted contradicted1/2PHP Foundation Daubois
The 8.5.12 fix may be incomplete, or there is a third, different bug
Per a Matrix channel, Canonical asked PHP and 'was told that it's unrelated and not a real issue'. Second-hand. Nothing from PHP on the list at capture.
fact timeline →
Fediverse posts relayed to oss-security by Aaron Rainbolt and Yves-Alexis PerezunverifiedA1 Weak signal opinion disputed0/1oss-security
If an immediate update is not feasible, take the system offline until it can be fully mitigated
X post 13:45:58Z 21 October (10.1 million views at capture) and the press release.
fact timeline →
NSA CybersecurityconfirmedA6 Established2/2NSA Cyber on X NSA
Organisations that cannot update immediately, or that run PHP 8.1 or older, should take PHP-based systems offline fact timeline →CISAconfirmedA6 Established1/1CISA
Edge protections went live hours before disclosure: Cloudflare at 03:02 UTC; Imperva, Akamai and Fastly on 21 October; Fortinet signatures by 22 October
Every vendor says the same two things: it is a stopgap, and patch anyway.
fact timeline →
the vendorsconfirmedA2 Reported status overstated5/5Cloudflare Imperva Threat Research Akamai Security Research Fastly Fortinet Community
The risks require immediate patching across United States Government departments and agencies
No CISA emergency directive was visible on the CISA home page at capture.
fact timeline →
NSAreportedA6 Established1/2NSA CISA
'Where immediate remediation is not feasible, organisations should consider taking the system offline until it can be fully mitigated'
That sentence is not on the NCSC page as captured at 08:09Z on 22 October. The page's offline advice is step 4 of 6 and is worded differently. The page was modified at 07:30Z that morning. The sentence's opening matches the Canadian CCCS text.
fact timeline →
UK NCSC, as quoted by the BBCdisputedA2 Reported disputed2/3BBC News NCSC UK CCCS
The UK's NCSC, the NSA and their counterparts in the EU and Australia advise taking systems offline where patching is not feasible
Australia's ACSC gives no offline advice. CERT-EU says isolate. The Netherlands, Italy, Japan and New Zealand give no offline advice.
fact timeline →
BBCcontradictedA1 Weak signal4/6BBC News ACSC CERT-EU NCSC-NL ACN / CSIRT Italia JPCERT/CC
The fix was authored on 18 October at 15:26 UTC and entered the public branches at 14:06 UTC on 21 October, with merges into 8.3, 8.4 and 8.5 between 14:12 and 14:30 UTC
Counted from the repository, not from a page. Five authors; 389 files; 10,689 insertions.
fact timeline →
php/php-src commit 3584a98bd, read from a cloneconfirmedA6 Established2/2php/php-src, read from a clone php-src
The fixes were released at 14:00 UTC on 21 October
CERT-EU says 13:30 UTC; the tags and advisories are stamped 13:34 to 13:35 UTC; the GitHub release 14:06 UTC; the php.net feed entries carry 00:05 to 00:35 UTC, which are authoring times, not publication times.
fact timeline →
php.net pre-announcement; Daubois; CERT-FR (16:00 Paris)disputedA2 Reported disputed7/8oss-security Daubois CERT-FR CERT-EU php-src PHP php-src php.net
The pre-announcement was published at 19:30 UTC on 20 October
The php.net feed says 20:32 UTC; oss-security relayed it at 20:22:51 UTC, so it was public by then.
fact timeline →
PHP FoundationdisputedA2 Reported disputed3/3PHP Foundation oss-security php.net
The flaws were disclosed on 22 October 2026
Primary sources put the release at 21 October: GHSAs 13:34Z, tags 13:35Z, CVE records 13:48Z and 13:54Z, GitHub release 14:06Z.
fact timeline →
BBC framing (UK morning coverage)contradictedrefuted measures differently2/3BBC News php.net php-src

What is still open

The full set of claims is on every claim; the ordered steps for a vulnerable system are on if you run PHP. Other readers: Curious reader · Website owner · Project or programme manager · Board member or executive · Security lead · PHP or platform engineer · Journalist · Security researcher · Analyst or policy advisor · CISO · CFO · Data protection officer · Head of AppSec · Developer · Communications team.