Who. Saw the headlines (websites offline, governments warning) and wants to know what happened and whether to worry.
Their question. What happened, does it affect me, and should I worry?
Needs
- what PHP is, in one sentence
- whether their own phone or laptop is at risk
- why websites went offline
- whether anyone was actually hacked
Can skip
- version numbers
- server settings
- the code
The answer in thirty seconds
Two serious holes were found in PHP, software that runs on the servers behind a large share of websites. They were fixed on 21 October 2026. Your phone and laptop are not the target: websites are, and it is the job of whoever runs them to update. Some sites were taken offline as a precaution. As of the evening of 22 October, no named organisation has said it was compromised through php2shell.
Reading path
- Your briefing 4 min
- Explained from the start 6 min
- Impact: offline vs compromised 2 min
- The numbers 2 min
About 14 minutes in all. Choose read as Alex and the bar under the menu keeps your place on every page.
Words they will meet
PHPphp2shellPrimary sourceExploit, exploitationNCSCWeb serverRemote code execution (RCE)Evidence vaultPatchCVE
Read as Alex →
Who. Runs a small business, charity or club website (often WordPress) on a hosting plan, and is not a developer.
Their question. My website runs on WordPress or similar: am I affected, and what do I ask my host?
Needs
- am I affected
- is it my job or my host's
- exactly what to ask the host
- whether updating WordPress plugins helps
Can skip
- the code
- the disclosure politics
- the agency comparison
The answer in thirty seconds
If your website runs on WordPress, Drupal, Joomla or anything else written in PHP, it is in scope: the flaw is in PHP itself, underneath your site. Updating plugins does not fix it. If someone hosts the site for you, ask them in writing whether PHP has been updated to a fixed version and restarted. If you run the server yourself, update PHP today.
Reading path
- Your briefing 4 min
- Explained from the start 6 min
- If you run PHP 3 min
- Affected systems 1 min
About 14 minutes in all. Choose read as Casey and the bar under the menu keeps your place on every page.
Words they will meet
PHPPrimary sourceCVSSVulnerabilityGitHub advisory (GHSA)Remote code execution (RCE)mod_phpOut of memory (OOM)longjmpCVE
Read as Casey →
Who. Sits on a board or leadership team; will be asked whether the organisation is exposed and must not repeat a wrong number.
Their question. Are we exposed, what is it costing us, and who owns the decision to pull a system?
Needs
- are we exposed
- who owns the decision to take a system offline
- what to ask the CISO
- which headline figures not to use
Can skip
- SAPIs and settings
- the C code
- the leak forensics
The answer in thirty seconds
A critical flaw in software that runs many websites, fixed on 21 October. Every agency says update first; some say take systems offline if you cannot. As of the evening of 22 October, no named organisation has said it was broken into through this flaw, though attempts are widespread. Your questions are: do we know every system running PHP, are they updated and restarted, and who can pull a system offline and how fast.
Reading path
- Your briefing 3 min
- Explained from the start 6 min
- Impact: offline vs compromised 2 min
- The agencies 1 min
- If you run PHP 3 min
About 15 minutes in all. Choose read as Jordan and the bar under the menu keeps your place on every page.
Words they will meet
PHPPatchExploit, exploitationSAPIPrimary sourceCVEKEVCISAphp2shellRemote code execution (RCE)
Read as Jordan →
Who. Runs a delivery plan that depends on websites or web apps, and needs to know what this does to the schedule.
Their question. What unplanned work does this create, who do I chase, and what do I tell stakeholders?
Needs
- what unplanned work this creates
- which systems and owners to chase
- what to tell stakeholders about downtime
- what changes after the fix
Can skip
- the code
- the bug classes
- the detection rules
The answer in thirty seconds
Expect unplanned work this week: updating PHP on every system that uses it, restarting, and re-testing. Some teams may take systems offline for hours as a precaution. Anything still on PHP 8.1 or older has no ready-made fix and becomes a migration project. Ask each system owner for a patch date and a test plan.
Reading path
- Your briefing 4 min
- Explained from the start 6 min
- If you run PHP 3 min
- Impact: offline vs compromised 2 min
- Timeline 1 min
About 16 minutes in all. Choose read as Taylor and the bar under the menu keeps your place on every page.
Words they will meet
PHPPatchPrimary sourceNSACISANCSCExploit, exploitationWeb serverphp2shellRemote code execution (RCE)
Read as Taylor →
Who. Owns the money: the cost of downtime, the cost of a breach, and whether insurance responds.
Their question. What is the financial exposure, what does downtime cost against breach cost, and will insurance respond?
Needs
- cost of acting against cost of not acting
- whether a precautionary shutdown is covered
- which figures are safe in a forecast
Can skip
- versions and settings
- the code
The answer in thirty seconds
The documented cost so far is precaution, not breach: hours to a day of downtime for organisations that pulled sites, and engineering time to update. As of the evening of 22 October, no named organisation has said it was compromised through this flaw. Ask your broker now, in writing, whether a precautionary shutdown with no breach is covered. Do not use 70% of the Internet in any forecast.
Reading path
- Your briefing 3 min
- Explained from the start 6 min
- Impact: offline vs compromised 2 min
- The numbers 2 min
- In context: 2008 to 2026 3 min
About 16 minutes in all. Choose read as Quinn and the bar under the menu keeps your place on every page.
Words they will meet
PatchUnauthenticatedPrimary sourceExploit, exploitationNCSCWeb serverphp2shellPHPRemote code execution (RCE)Evidence vault
Read as Quinn →
Who. Advises the controller on GDPR; decides with it whether an incident is a personal data breach, whether the 72-hour clock has started, and what goes on the record.
Their question. Was personal data exposed, does this start a GDPR breach assessment or a 72-hour notification, and what do I document?
Needs
- was personal data exposed
- whether this is a breach yet, and when the 72-hour clock starts
- what to ask the host and the other processors
- what to document, breach or no breach
Can skip
- the C code
- server settings
The answer in thirty seconds
A flaw is not a breach. An unpatched, internet-facing PHP application holding personal data is a risk to record and treat; it becomes a breach to assess when there is a sign of compromise on it. No named organisation has said it was compromised through php2shell as of the last check. Ask your hosts in writing, review from 17 October, and document the assessment either way.
Reading path
- Your briefing 5 min
- No named compromise: the evidence 3 min
- Impact: offline vs compromised 2 min
- grc/risks/r06-1/index.html 1 min
- grc/frameworks/gdpr/index.html 1 min
- If you run PHP 3 min
About 15 minutes in all. Choose read as Morgan and the bar under the menu keeps your place on every page.
Words they will meet
PHPphp2shellVulnerabilityExploit, exploitationShellPatchPrimary sourceNCSCWeb serverRemote code execution (RCE)
Read as Morgan →
Who. Accountable for security risk; must report exposure and evidence of non-compromise to the board.
Their question. What is our exposure, what is our evidence we were not hit, and what do I tell the board?
Needs
- exposure as a list
- evidence we were not hit, from which date
- the board line
- where agencies disagree
The answer in thirty seconds
The flaw is in the PHP runtime, so exposure is every internet-facing system running PHP, including vendor appliances. Review logs from 17 October (the earliest reported attempt), not from the fix. Attempts are reported at scale; no named victim is confirmed. Patch first, isolate where you cannot.
Reading path
- Your briefing 3 min
- Impact: offline vs compromised 2 min
- Exploitation signals 2 min
- Detection and defence 3 min
- The agencies 1 min
- If you run PHP 3 min
About 14 minutes in all. Choose read as Robin and the bar under the menu keeps your place on every page.
Words they will meet
PHPPatchCDNSAPIShellWAFPrimary sourceCVEExploit, exploitationKEV
Read as Robin →
Who. Owns the platform and the engineering time; needs the patch order, what breaks, and what to change next.
Their question. 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?
Needs
- patch order
- what the fix changes in behaviour
- the end-of-life versions
- time-to-pull-the-plug as a platform property
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.
Reading path
- Your briefing 3 min
- The two flaws 4 min
- The code 7 min
- If you run PHP 3 min
- Detection and defence 3 min
About 20 minutes in all. Choose read as Avery and the bar under the menu keeps your place on every page.
Words they will meet
PHPmod_phpPHP-FPMPatchBackportShellEnd of lifePrimary sourceCVSSVulnerability
Read as Avery →
Who. Reporting the story; needs numbers that hold up, quotes that are on the page they are attributed to, and the order of events.
Their question. Which numbers hold up, who said what first, and what is still unverified?
Needs
- which numbers hold up
- who said what first
- quotes checked against their source
- what is unverified
The answer in thirty seconds
The 70% figure is a share of websites that use PHP, restated as a share of the Internet. The release was 21 October, not 22. Three parties claim the discovery; their dates do not conflict, their framing does. No agency has confirmed a successful compromise, and CISA has not listed either flaw as exploited.
Reading path
- Your briefing 3 min
- The numbers 2 min
- Every claim 1 min
- Who found it 2 min
- How disclosure broke 1 min
- The agencies 1 min
About 10 minutes in all. Choose read as Rowan and the bar under the menu keeps your place on every page.
Words they will meet
PHPExploit, exploitationCISANCSCPrimary sourcePatchGitHub advisory (GHSA)Out of memory (OOM)VulnerabilityHoneypot
Read as Rowan →
Who. Writes the organisation's statement and answers the press; needs what is safe to say and what will be asked.
Their question. What can we say that is true, what should we not say, and what will we be asked?
Needs
- the safe statement
- the phrases to avoid
- the questions coming
- where to point people
The answer in thirty seconds
Safe to say: two critical flaws in PHP were fixed on 21 October; we updated or isolated our systems; we have no evidence of compromise and review continues. Do not say '70% of the Internet', 'the most severe ever' or 'exploited everywhere'. Point people to php.net and your national agency.
Reading path
- Your briefing 3 min
- Explained from the start 6 min
- The numbers 2 min
- Impact: offline vs compromised 2 min
- The agencies 1 min
About 14 minutes in all. Choose read as Riley and the bar under the menu keeps your place on every page.
Words they will meet
PHPExploit, exploitationPatchCDNHoneypotPrimary sourceNCSCWeb serverphp2shellRemote code execution (RCE)
Read as Riley →
Who. Runs the response: patch order, mitigations, monitoring and the offline call.
Their question. What do I patch first, what do I watch for, and when do I take something offline?
Needs
- patch order
- temporary mitigations and what each misses
- what to alert on
- the offline threshold
The answer in thirty seconds
Internet-facing mod_php first, then FPM, then everything else. Where patching slips, apply php.net's temporary settings and record that each blocks a known path only. Alert on PHP workers spawning shells or fetching tools. Decide now who calls isolate or offline, and when.
Reading path
- Your briefing 3 min
- If you run PHP 3 min
- Exploitation signals 2 min
- Detection and defence 3 min
- The agencies 1 min
About 12 minutes in all. Choose read as Sam and the bar under the menu keeps your place on every page.
Words they will meet
PHPShellPatchmod_phpPHP-FPMMultipartExploit, exploitationKEVPrimary sourceCVSS
Read as Sam →
Who. Owns application security across many teams; needs scope, settings and the pipeline change.
Their question. Which of our applications are in scope, which settings matter, and what do we add to the pipeline?
Needs
- which applications are in scope
- settings in order of least breakage
- what to add to the pipeline
- where detection belongs
The answer in thirty seconds
Every application on an affected runtime is in scope, including ones with no uploads or sessions: the demonstrated paths run before application code. Add the running PHP version to the SBOM and fail the pipeline on an unfixed one. Detection belongs at the edge and on the host, not in the app.
Reading path
- Your briefing 3 min
- The two flaws 4 min
- Affected systems 1 min
- Detection and defence 3 min
- If you run PHP 3 min
About 14 minutes in all. Choose read as Jamie and the bar under the menu keeps your place on every page.
Words they will meet
PHPSBOMPatchPHP-FPMShellMultipartProof of concept (PoC)Primary sourceCVSSVulnerability
Read as Jamie →
Who. Runs the servers and containers; needs versions, SAPIs, ini settings and commands.
Their question. Which versions, which SAPIs, which settings, which commands?
Needs
- fixed versions
- which SAPI is how exposed
- the exact settings and where they must be set
- how to verify the running version
The answer in thirty seconds
Target 8.5.12, 8.4.27, 8.3.36 or 8.2.35; restart every worker and rebuild images. Until then: session.upload_progress.enabled=0 in php.ini or the pool, low post_max_size, fatal_error_backtraces=0 on 8.5, pm.max_requests=1 on FPM. Verify with php -v inside the running container.
Reading path
- Your briefing 3 min
- The two flaws 4 min
- If you run PHP 3 min
- Affected systems 1 min
- The code 7 min
About 18 minutes in all. Choose read as Drew and the bar under the menu keeps your place on every page.
Words they will meet
PHP-FPMSAPICVEBackportPrimary sourcePHPCVSSVulnerabilityGitHub advisory (GHSA)Remote code execution (RCE)
Read as Drew →
Who. Writes PHP applications; wants to know whether their code is the problem and what they can do.
Their question. Is my code the problem, what do I change, and how do I check the box I deployed to?
Needs
- is my code the problem
- what I can and cannot do in userland
- how to check the box I deploy to
Can skip
- the agency comparison
- the money
The answer in thirty seconds
Your code is not the problem and cannot be the fix: the flaw is in the engine beneath it. ini_set, .user.ini and auto_prepend_file all run too late. Check the running version where the code runs, after the restart, and tell the platform owner today if your target is 8.1 or older.
Reading path
- Your briefing 3 min
- The two flaws 4 min
- The code 7 min
- If you run PHP 3 min
About 17 minutes in all. Choose read as Lee and the bar under the menu keeps your place on every page.
Words they will meet
PatchOut of memory (OOM)Primary sourcePHPCVSSVulnerabilityGitHub advisory (GHSA)Remote code execution (RCE)mod_phplongjmp
Read as Lee →
Who. Studies vulnerabilities; wants the bug classes, what was demonstrated against what, and the open technical questions.
Their question. What are the bug classes, what was demonstrated, and what is still open?
Needs
- the two bug classes
- what was demonstrated against which SAPI
- the fix in the code
- the open questions
The answer in thirty seconds
Two classes: an out-of-memory longjmp leaving request memory uninitialised, and worker global state pointing at freed request memory across requests. mod_php was exploited before application code; FPM for the first flaw is disputed. The fix removes longjmp for OOM. A report of an incomplete fix is open.
Reading path
- Your briefing 3 min
- The code 7 min
- The two flaws 4 min
- Who found it 2 min
- In context: 2008 to 2026 3 min
About 19 minutes in all. Choose read as Ash and the bar under the menu keeps your place on every page.
Words they will meet
Exploit, exploitationmod_phpPHP-FPMOut of memory (OOM)longjmpCWEGitHub advisory (GHSA)SAPIPrimary sourcePHP
Read as Ash →
Who. Advises on policy or markets; wants what this says about disclosure, AI-assisted discovery and how agencies responded.
Their question. How did coordinated disclosure fail, and what does AI-assisted discovery change?
Needs
- how coordinated disclosure failed
- what AI-assisted discovery changes
- why agencies diverged
- the precedent
The answer in thirty seconds
A bug class seen and shelved in 2024 was turned into working exploits by three AI-assisted teams within three weeks in August 2026. The disclosure leaked 22.5 hours early. Agencies split on the hardest question, offline or not, along lines that look institutional rather than technical.
Reading path
- Your briefing 3 min
- Who found it 2 min
- How disclosure broke 1 min
- In context: 2008 to 2026 3 min
- The agencies 1 min
- The numbers 2 min
About 12 minutes in all. Choose read as Blake and the bar under the menu keeps your place on every page.
Words they will meet
Exploit, exploitationPatchProof of concept (PoC)Coordinated disclosureHoneypotWAFPrimary sourcePHPGitHub advisory (GHSA)Out of memory (OOM)
Read as Blake →