Web DevelopmentTechnical

PHP Vulnerability 2026: What Site Owners Do Now

The PHP vulnerability disclosed on 21 October 2026 is really two flaws, CVE-2026-109618 and CVE-2026-109619, and either one can let an attacker run code on a server without logging in. The only complete fix is to update PHP itself to 8.5.12, 8.4.27, 8.3.36 or 8.2.35 and restart every PHP worker. Updating WordPress, a theme or a plugin does not change the PHP your host is running.

This is part 1 of The Web After PHP2Shell, a six-part Ambeltek series on what this week means for how websites are built and run. It is written for owners, marketers and developers who need to know whether they are exposed and what to do next. Every fact below was checked against PHP’s own announcements and the GitHub advisories on 23 October 2026, and where sources disagree we say so. The story is still moving, so treat this as a dated snapshot.

On this page

What happened between 17 and 23 October

PHP’s security team gave advance notice on 20 October of a release scheduled for Wednesday 21 October at 14:00 UTC, covering two vulnerabilities that both score CVSS v4.0 9.2. The notice reserved the right to ship early if details became public or exploitation appeared. Details did leak. watchTowr reports that information circulated online on 20 October, ahead of the planned 22 October disclosure, and that it confirmed the flaws were real.

The timeline of the attacks is less tidy than the timeline of the fix. Sansec’s write-up records Cloudflare reporting early attacks at 07:43 UTC on 21 October, more than six hours before the patch. Help Net Security adds that Amazon Threat Intelligence says its honeypot logged an exploitation attempt on 17 October, four days before disclosure, from an address tied to a commercial anonymization service. How that actor obtained the details is unknown.

Seven days of the PHP vulnerability, from first exploitation attempt to the latest advisory 17 October: Amazon honeypot logs an exploit attempt four days before disclosure. 20 October: details leak online, watchTowr confirms the bugs are real and PHP announces the release. 21 October: attacks seen at 07:43 UTC, fixes ship at 14:00 UTC as PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35. 22 October: Sansec says mass exploitation is less likely than feared and a scanner is released. 23 October: PHP advises disabling session upload progress and promises CVE-2026-115560 details with the next release. One week of the PHP vulnerability Disclosure was planned for 22 October. Events overtook it. 17 Oct 20 Oct 21 Oct 22 Oct 23 Oct Amazon honeypot logs an exploit attempt, 4 days before disclosure. Details leak online. watchTowr confirms the bugs are real. PHP gives notice. Attacks seen 07:43. Fixes ship 14:00: 8.5.12, 8.4.27, 8.3.36, 8.2.35. Times in UTC. Sansec: mass exploitation less likely than feared. Open scanner out. PHP advises: turn off session upload progress. CVE-2026-115560 details to follow. Sources: php.net, watchTowr, Sansec, Help Net Security. Dates as reported on 23 October 2026.

Scroll the diagram sideways to see all of it.

Source: Ambeltek diagram based on the php.net announcements and the watchTowr, Sansec and Help Net Security reports cited in the text.

Who found the flaws is also layered. Cybersecurity Dive credits researchers at Wiz and Calif, with AI models involved in the work. Wiz’s own account says it found the first bug on 19 August with AI tooling and reported it to PHP on 24 August. Part 2 of this series, AI security vulnerabilities, covers why that matters for everyone who runs a site.

The scale is why this reached the front pages. W3Techs reports PHP on 69.3% of websites whose server-side language is known. Pinboard, parts of Wikipedia, 4chan and Something Awful went offline temporarily, NBC News reported, and Cybersecurity Dive lists the Finnish government and the Dutch House of Representatives among those who disconnected sites.

What is the PHP vulnerability in plain terms?

Both flaws are about what PHP does when a request goes wrong. A request can hit a fatal error partway through, most often by running out of memory. The PHP advisories describe what that leaves behind.

  • CVE-2026-109618 (out-of-memory corruption). Memory exhaustion can interrupt PHP while internal request data is only partly set up. Cleanup code then treats that half-built data as valid.
  • CVE-2026-109619 (stale global state). Internal state that belongs to one request survives after its memory has been freed. A later request handled by the same worker can use it before PHP resets it.

The GitHub advisory for CVE-2026-109618 classes it as a use-after-free (CWE-416), a memory safety fault in PHP’s C engine, not a mistake in anyone’s website code. That distinction drives most of what follows. Wiz says the flaws sit in PHP itself, so even a minimal “Hello World” script on an affected version could be vulnerable, and it demonstrated unauthenticated code execution against the default container images of WordPress, Drupal and Joomla.

The affected runtimes are the usual ones: PHP-FPM, Apache with mod_php, php-cgi, LiteSpeed and FrankenPHP. PHP’s announcement says the risk is highest for mod_php, where a demonstrated exploit lets one unauthenticated request trigger the attack before any application code runs.

Which PHP versions are fixed?

Four supported branches have fixed releases. Older branches do not, which is the uncomfortable part for anyone running a site they have not touched in years.

PHP branchStatus on 23 October 2026Fixed releaseWhat to do
8.5Supported8.5.12Update and restart workers
8.4Supported8.4.27Update and restart workers
8.3Supported8.3.36Update and restart workers
8.2Security support ends 31 December 20268.2.35Update now, then plan the move
8.1, 8.0, 7.4UnsupportedNo official release; minimal source backports publishedUse a vendor or LTS package, or upgrade
7.3 and older, including PHP 5UnsupportedNoneUpgrade; watchTowr found these branches affected

Sources: php.net announcements, php.net supported versions and the watchTowr FAQ. The watchTowr finding on PHP 7.3 and older is its own, not a PHP project statement.

Two cautions. First, distribution packages often carry a fix under an older version number, so ask the vendor whether the fix is in your build, not just what the number says. Second, 8.2.35 is a real fix with a short shelf life: 8.2 stops receiving security fixes in about ten weeks.

Are you exposed? A five-minute check

Start with one question: does any server behind your site run PHP? WordPress, Drupal, Joomla, Magento, Laravel, Symfony, phpMyAdmin and most hand-built brochure sites do. Then follow the first branch below that applies.

Decision tree for whether a site is exposed to the PHP vulnerability and what to do Question 1: does your site run PHP? If no, you are not exposed to these two CVEs but should check the rest of your stack. If yes, question 2: do you control the server? If no, because you use a shared or managed host, ask the host in writing for the fixed version and confirmation that PHP workers were restarted. If yes, question 3: which PHP branch? For 8.2 to 8.5, update to 8.2.35, 8.3.36, 8.4.27 or 8.5.12 and restart. For 8.1 to 7.4, use a vendor backport or upgrade. For 7.3 and older, upgrade because no fix exists. Are you exposed to the PHP vulnerability? Follow the first answer that applies to your site. Does your site run PHP? No Yes Not exposed to these two CVEs. Check the rest of your stack. Do you control the server? No Yes Shared or managed host. Ask in writing: which fixed version, and were PHP workers restarted? Which PHP branch? 8.2 to 8.5 Install 8.2.35, 8.3.36, 8.4.27 or 8.5.12, then restart workers. 8.1, 8.0 or 7.4 No official release. Use a vendor package or move up a branch. 7.3 or older No fix exists. Upgrade to a supported branch as soon as you can.

Scroll the diagram sideways to see all of it.

Source: Ambeltek diagram based on the php.net advisory and the watchTowr FAQ.

To find your version, check the PHP version selector in your hosting control panel. In WordPress, Tools, Site Health, then the Info tab, then Server, shows it. A command-line php -v can report a different version from the one that serves web requests, so trust the web-serving value. On a managed host, send the support team three questions: which fixed build is installed, whether every PHP worker was restarted afterwards, and whether your plan uses mod_php.

If you run your own servers and want to test them, Help Net Security reports that Searchlight Cyber released an open-source scanner, php2shell-scanner, on 22 October that checks hosts for both CVEs. Run it only against systems you own or are authorised to test.

Is the PHP vulnerability being exploited?

Yes, but how widely is disputed, and the accurate answer changed during the week. As of 23 October the public record looks like this:

  • watchTowr says its honeypot network observed exploitation, and notes that CISA had not added either CVE to its Known Exploited Vulnerabilities catalogue as of 22 October. It attributes the exploitation only to its own observations, with no named threat actor.
  • Cloudflare and Amazon each reported attempts before the fix shipped, as covered above.
  • Sansec’s 22 October update says mass exploitation is less likely than first expected. It reports that public proof-of-concept exploits mostly fail against a default PHP install and usually need an application-level local file inclusion bug as a stepping stone.
  • Kevin Beaumont, quoted by Help Net Security, expects a mass of incidents. Wiz called the flaws among the most severe ever found in PHP.

Do not read “less likely than feared” as “safe to wait”. Sansec’s finding is about how easy a public exploit is to run, not about whether private, better-tuned exploits exist. The sensible reading is that patching remains urgent, that panic shutdowns are probably unnecessary where a host has already patched, and that the picture will keep changing. On 23 October PHP also added an informational advisory about session upload progress, with a full advisory for a third identifier, CVE-2026-115560, promised with the next release.

Do the partial mitigations work?

They reduce exposure to specific attack paths. PHP is explicit that only an update is a complete solution. The PHP announcement lists the interim measures:

MeasureTargetsCaveat
memory_limit=-1, set where applications cannot override itCVE-2026-109618An underlying allocation failure can still reach the bug; Sansec notes it lets one request use all server memory
Low post_max_size (8M without uploads, 32M with)CVE-2026-109618Also enforce limits at the web server or proxy
Container or cgroup memory limitAvailabilityDo not substitute RLIMIT_AS or RLIMIT_DATA, which can trigger the failure
session.upload_progress.enabled=0, then restart workersCVE-2026-109619Blocks the confirmed session path, not other variants
fatal_error_backtraces=0 on PHP 8.5CVE-2026-109619Blocks the confirmed backtrace path only
Block multipart/form-data at the web serverBothThe GitHub advisory suggests it where uploads are unused; it breaks file uploads

A web application firewall adds another layer without replacing the patch. Help Net Security quotes Cloudflare’s CTO as saying its rules are available to all customers, including free plans. Treat any firewall rule as a stopgap that buys you hours, not a reason to defer the update.

How many sites run PHP that cannot be patched?

More than most owners assume. W3Techs splits PHP sites by major version, and more than a third are on branches that are out of support.

Share of PHP websites by major version, 23 October 2026 PHP 8 runs on 65.3 percent of PHP websites, PHP 7 on 26.9 percent, PHP 5 on 7.7 percent and PHP 4 on 0.1 percent. PHP 7 and older together are 34.7 percent of PHP sites and have no official fix for the 2026 vulnerabilities. PHP 8.0 and 8.1 are included in the PHP 8 bar and are also out of support. PHP sites by major version Share of PHP-using websites, W3Techs, 23 October 2026 PHP 8 65.3% PHP 7 26.9% PHP 5 7.7% PHP 4 0.1% PHP 7 and older: 34.7% of PHP sites, none with an official fix. PHP 8.0 and 8.1 sit inside the PHP 8 bar and are also out of support, so the true share is higher.

Scroll the diagram sideways to see all of it.

Source: W3Techs, PHP version distribution, 23 October 2026.

Estimates of the exposed population vary widely and have not been reconciled. Cybersecurity Dive reports a range from more than 1.3 million vulnerable sites (one researcher) to 22.6 million exposed instances (Palo Alto Networks), and says Cisco estimated that roughly half of internet-facing instances run versions too old to receive the fixes. NBC News reports that Censys counted nearly 55 million web properties running PHP, with no clear count of how many had updated. Treat these as order-of-magnitude figures, not measurements.

Your patch plan for this week

Most of the risk sits in the first day, but the longer tail is where small sites get hurt.

WhenActionWhy
TodayAsk your host which PHP build serves your site and confirm workers were restartedThe fix takes effect only after a restart
TodayIf you run your own server, install 8.5.12, 8.4.27, 8.3.36 or 8.2.35, or your vendor’s fixed package, and restart PHPOnly an update is a complete fix
TodayPut a web application firewall in front of the site if you have noneBuys time against known exploit paths
This weekInventory every PHP app, including old microsites, staging copies and forgotten installsAny PHP serving web requests is in scope
This weekCheck logs for unusual multipart requests followed by memory errors or repeated 500 responses, oversized PHPSESSID cookies and unexplained worker churnThese are the signs Wiz lists
This weekRotate passwords, API keys and session secrets if a server was public and unpatchedSansec reports the disclosure path can return secrets from other requests, and China’s industry ministry told organisations to change accounts, passwords and keys, per ABC News
This monthMove off 8.1 and older, and schedule the move from 8.2 before 31 DecemberNo official fixes are coming for unsupported branches

If you manage sites for others, the website maintenance tasks checklist is a good place to turn this into a recurring routine, and WordPress SEO covers the platform most affected.

Where the PHP vulnerability leaves your website

For most owners the immediate job is narrow: confirm the fix is installed, restart, rotate secrets where it applies, and retire PHP versions that cannot be patched. That is a day of work, not a rebuild, and nothing here shows that PHP as a language has failed. Part 3, is PHP dead, takes that question on directly.

The longer job is deciding how much code you want running on a public server at all. Static vs dynamic website tests whether pre-built sites really are safer. If you ever need to take a site down to patch it, website maintenance mode explains how to do it without losing search visibility. The series ends with the future of web development after this week.

If you would rather depend on less server-side code, Ambeltek’s web development service builds sites on Astro, which publishes pre-built pages by default. It is not the right fit for every project, and the static vs dynamic article says where it is not. For the practical background on how a build moves from brief to launch, see our web development process guide, and for what it should cost, how much does a website cost.

Frequently asked questions

What is the 2026 PHP vulnerability?

It is a pair of critical flaws in the PHP engine, CVE-2026-109618 and CVE-2026-109619, both rated CVSS v4.0 9.2. Either can allow unauthenticated remote code execution on a server that serves web requests with PHP. PHP released fixes on 21 October 2026.

Which PHP versions fix CVE-2026-109618 and CVE-2026-109619?

PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35. PHP 8.1 and older get no official release, though the PHP security team published minimal source backports for 7.4, 8.0 and 8.1, and some distributions and LTS vendors ship their own fixes. PHP 7.3 and older, including PHP 5, have no fix.

Does updating WordPress fix the PHP vulnerability?

No. The flaws are in PHP itself, not in WordPress, a theme or a plugin, so a WordPress update does not change them. Your host or server administrator has to install a fixed PHP build and restart the PHP workers.

Do I need to take my website offline?

Only if you cannot get a fixed PHP build quickly. The UK National Cyber Security Centre advised taking systems offline when they cannot be fixed right away, while CISA advised patching. If your host confirms the fix is installed and workers were restarted, staying online is reasonable.

Is the PHP vulnerability being exploited?

Yes, in some form. Amazon, Cloudflare and watchTowr each reported exploitation attempts, some before the fix shipped. Sansec's 22 October update said mass exploitation is less likely than first feared, because public exploits mostly fail against a default install.

Is a static website affected by the PHP vulnerability?

A site that serves pre-built HTML files and runs no PHP on its servers is not exposed to these two CVEs. Anything else on the same server that runs PHP, such as an admin panel or a separate blog, still is.

Should I change passwords and keys after the PHP vulnerability?

If your server was internet-facing and unpatched around 20 and 21 October, treat secrets that PHP handled as possibly exposed and rotate them. Sansec reports that the memory disclosure path can return passwords, session tokens, API keys and TLS private keys from other requests.

OK

Olga Kunger

Founder & Lead Strategist, Ambeltek

Olga leads Ambeltek's web development, AI SEO, and GEO work — helping brands rank on Google and get cited by AI engines. More about Olga →

Need a site built to rank and get cited?

Fast, structured websites. Launch tier from $5k, live in about two weeks.