Websites & support / Explainer
PHP2Shell: what the PHP security alert means for your website
If your business uses WordPress, WooCommerce, Drupal or another PHP application, I'd ask whoever runs the hosting to confirm its patch status now. A website can look perfectly normal while the software underneath it needs an urgent security update.
The incident is being called PHP2Shell. There are fixes available, and there are clear questions you can ask. I'd start with those before trying a scanner from a social media post or changing settings you don't understand.
The fixes came out on 21 October
The two vulnerabilities are CVE-2026-109618 and CVE-2026-109619. They are rated critical, with a CVSS v4.0 score of 9.2. Under the right conditions, an attacker can run code on an affected server without logging in.
The PHP Foundation says the coordinated release was originally scheduled for 22 October. After the CVE identifiers circulated on 20 October, PHP brought the release forward to 21 October. Early claims of a 10.0 score were incorrect. That timing explains why a fix released yesterday is dominating the news today.
Reporting by The Record describes organisations taking services offline while they dealt with the risk. A precautionary shutdown is different from a confirmed break-in; the fact that a site went offline does not tell us it was hacked.
Source: The PHP Foundation: release, discovery and disclosure timeline; UK NCSC: critical security issue affecting PHP; The Record: organisations taking websites offline
What is wrong with PHP?
These are faults in the PHP runtime, the software on the server that runs PHP applications. The two advisories describe failures in how PHP manages memory and information left behind between requests.
| Vulnerability | What the PHP advisory describes |
|---|---|
| CVE-2026-109618 | An out-of-memory error can interrupt PHP before internal data is fully prepared. Later cleanup can then use that invalid data. |
| CVE-2026-109619 | PHP can retain a reference to memory from an earlier request after that memory has been released. A later request handled by the same worker can use the stale reference. |
Source: PHP advisory: CVE-2026-109618; PHP advisory: CVE-2026-109619
A current-looking website can still need the fix
PHP lists web-serving installations including PHP-FPM, Apache with mod_php, php-cgi, FrankenPHP and LiteSpeed as at risk. It considers the risk highest for mod_php, where an attack has been demonstrated before application code runs. The exact attack paths vary by setup.
This needs checking even if your website was built recently. WordPress says no WordPress update is required or planned for these particular flaws: the fix belongs in PHP. Updating a theme or plugin doesn't install it.
In WordPress, Tools > Site Health > Info > Server shows the reported PHP version. Use that as a starting point for a conversation with your host. The full package revision and any vendor fixes still need checking.
Source: PHP: 21 October security advisory and fixed releases; WordPress: critical PHP security release
Which PHP versions contain the fixes?
The PHP project released these fixes on 21 October 2026. Vendor-maintained packages can use different numbers.
| PHP branch | Fixed upstream release |
|---|---|
| 8.2 | 8.2.35 |
| 8.3 | 8.3.36 |
| 8.4 | 8.4.27 |
| 8.5 | 8.5.12 |
Source: PHP: 21 October security advisory and fixed releases
Why an older number does not always mean unpatched
Some operating-system and hosting vendors apply the security fix to an older release they maintain. This is called backporting. You need the vendor advisory and full package revision to check it properly.
For example, Ubuntu lists PHP 8.3.6-0ubuntu0.24.04.13 as a corrected package for Ubuntu 24.04 LTS in USN-8948-1. That is a specific Ubuntu package, with fixes to the version Ubuntu supplies. It does not mean an ordinary, unpatched PHP 8.3.6 installation is safe.
I'd want a host to name the installed package and confirm that it contains both CVE fixes. A generic reply saying the server is up to date leaves the important question unanswered. Equally, an outside checker that sees only a short version string may miss a legitimate vendor fix.
Source: Ubuntu: USN-8948-1; Red Hat: CVE-2026-109618 and backporting explanation
Patching and checking for an earlier break-in are separate jobs
Amazon Threat Intelligence reports a PHP2Shell exploitation attempt in its MadPot honeypot telemetry dating to 17 October, before public disclosure. Its account distinguishes observed attempts from uncertainty about whether those early attempts would have succeeded against real systems. It also reports broader exploitation after disclosure.
That is a reason to ask about the exposure period as well as the update. It is not evidence that your particular website has been compromised. A patched server can still need investigation into what happened beforehand.
Ask the person responsible for security to preserve the relevant logs and consider the earlier activity in their review. I'd want suspicious file changes or unexpected processes investigated before treating the job as complete. If a break-in is suspected, agree a recovery plan; applying the PHP update alone does not establish that an attacker has been removed.
A firewall helps, but PHP still needs patching
Cloudflare says it deployed PHP2Shell WAF protections, including for its Free plan, before disclosure. Its own advice still tells customers to patch PHP. A web application firewall is an additional defence, and its protections do not establish which PHP package is running at the origin server.
I'd ask whether the protection is active for the actual website and how the origin is reached. Having a Cloudflare account is not enough information to decide that the hosting has been fixed.
The UK NCSC advises finding PHP systems, prioritising those exposed to the internet and applying updates. Where updating is not possible, it points to temporary mitigations. If those cannot be applied, or would take too long, it says organisations should consider taking the system offline until it can be fully mitigated. Agree that decision with the person running the service, using the current official guidance.
Source: Cloudflare: PHP2Shell WAF protections; UK NCSC: critical security issue affecting PHP
AI helped the research. People still had to deliver the fix
OpenAI says Calif identified a critical flaw using its models through Patch the Planet, and that Wiz independently discovered and reported both vulnerabilities. Wiz describes using AI to develop and adapt exploits. PHP maintainers led the fixes and release.
There is a longer history too. The PHP Foundation traces early signs of the out-of-memory problem to work following a 2024 audit. It acknowledges delays caused by difficult compatibility decisions and limited resources. Its account says people still make the decisions and work on every patch, with AI helping validation.
I'd use this as a prompt to check who can apply an urgent server update when the normal maintainer is unavailable. Keep the hosting responsibilities and emergency contact route clear, with access available to the people authorised to act.
Source: OpenAI: Patch the Planet response; Wiz Research: PHP2Shell investigation; The PHP Foundation: release, discovery and disclosure timeline
What I would ask the hosting provider
Keep the website address and account details in the support request, and ask for an answer covering the actual installation. This is a useful starting list:
- Have both CVE-2026-109618 and CVE-2026-109619 been fixed for this site? Which PHP package or vendor build contains the fixes?
- Has the PHP service been restarted or replaced where required, so the running workers use the patched code?
- Does that confirmation cover staging sites, other PHP versions on the account, old containers and any retained public origin or rollback site?
- What firewall or temporary mitigations are active, and is there anything the account owner still needs to do?
- Has the exposure period been reviewed for suspicious activity? What logs have been preserved and what, if anything, needs further investigation?
- After the update, who will check forms, checkout, bookings and any custom integrations that the business relies on?
If the website still depends on older PHP
PHP 8.1 and older are outside the PHP project's normal support. Some vendors provide backported fixes, and PHP also supplied minimal source backports for 7.4, 8.0 and 8.1 for this incident. That does not restart normal upstream support for those branches.
Check the precise coverage with the vendor and make a plan for moving to a supported branch. PHP 8.2 still receives security support, but that ends on 31 December 2026 according to the PHP support table.
I'd deal with this incident promptly, then arrange compatibility testing for the longer-term upgrade. Record the plugins and custom code that need checking, keep a recoverable backup and test the routes that bring work into the business. An old site left online for rollback needs its own security decision too.
Source: PHP: 21 October security advisory and fixed releases; PHP: supported versions
Sources
Checked on 22 October 2026.
- PHP: 21 October security advisory and fixed releases
Affected web runtimes, fixed upstream releases and limited source backports. Temporary mitigations do not replace an update.
- The PHP Foundation: release, discovery and disclosure timeline
The release moving from 22 to 21 October, corrected severity score, earlier audit work, patching difficulties and the role of researchers and AI.
- PHP advisory: CVE-2026-109618
The out-of-memory corruption flaw and affected/fixed releases.
- PHP advisory: CVE-2026-109619
The stale global state flaw and its request/worker lifecycle.
- UK NCSC: critical security issue affecting PHP
UK organisational guidance on inventory, patching, temporary mitigation and considering taking systems offline.
- WordPress: critical PHP security release
PHP needs updating; no WordPress update is planned for these flaws. The Site Health route for viewing the reported PHP version.
- Ubuntu: USN-8948-1
A concrete example of fixed distribution package revisions for both vulnerabilities.
- Red Hat: CVE-2026-109618 and backporting explanation
Why version-only scanners can misclassify vendor packages containing backported fixes.
- Amazon Threat Intelligence: PHP2Shell observations
Reported attempts from 17 October, limits of early telemetry and the need to consider the exposure period.
- Cloudflare: PHP2Shell WAF protections
Provider-reported WAF deployment and its continuing recommendation to patch PHP.
- OpenAI: Patch the Planet response
OpenAI's account of Calif, Wiz and the maintainer-led response.
- Wiz Research: PHP2Shell investigation
The researchers' account of AI-assisted vulnerability research and exploitation work.
- PHP: supported versions
Current branch support and the 31 December 2026 security-support end date for PHP 8.2.
- The Record: organisations taking websites offline
Reporting about the precautionary operational response; not used as authority for PHP patch instructions.
