codified

Updated

Is your site exposedto PHP2Shell?

If your website runs a PHP version older than 8.5.12, 8.4.27, 8.3.36 or 8.2.35, yes. PHP2Shell (CVE-2026-109618 and CVE-2026-109619) lets attackers run code on a web server without logging in. The flaw is in PHP itself, so updating WordPress or your plugins doesn’t fix it. Updating PHP does.

Most managed hosts patched on October 21. Check your site below, see what your host has said, or check your PHP version yourself.

Free PHP2Shell check

We load your homepage once, like a browser would, and look up its DNS. No attack traffic, and we don’t keep a list of the sites people check.

PHP2Shell at a glance

Two flaws in PHP. One fix: update it.

PHP runs most of the web, including every WordPress site. These two bugs sit in PHP’s own request handling, before any WordPress code runs.

PHP2Shell key facts
What it isTwo vulnerabilities in the PHP interpreter. CVE-2026-109618: memory corruption when PHP runs out of memory part-way through setting up a request. CVE-2026-109619: a use-after-free, where state left over from one request is used by the next request on the same worker.
NicknamePHP2Shell
SeverityCritical. Each is rated 9.2 under CVSS v4.0.
What an attacker getsCode execution on the web server with the web server’s permissions, without logging in. Researchers also showed reading PHP worker memory, which can expose passwords, tokens and API keys.
Who’s affectedAny PHP installation that serves web requests: PHP-FPM, Apache with mod_php (the highest risk), php-cgi, FrankenPHP and LiteSpeed. Wiz Research says every PHP version back to 5.4 is affected by at least one of the two flaws.
Fixed inPHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35, released October 21, 2026 at 14:00 UTC. Linux distributions and long-term-support vendors got the patches in advance, so check your vendor’s packages. PHP 7.4, 8.0 and 8.1 are end of life; the PHP team published minimal source backports for them.
Not fixed byWordPress, plugin or theme updates. The WordPress security team says no WordPress update is required or planned.
ExploitationDetails leaked on October 20, before the release. Researchers built working exploits, Patchstack logged active exploitation incidents reported by hosting partners, and Sucuri saw exploitation attempts in the wild. CISA called for immediate patching, and the UK NCSC advised taking systems offline if they can’t be protected yet.
Found byWiz Research found and reported both flaws; Calif researcher Ryan Austin independently found the first. Both were reported to the PHP project in August 2026.

Host status

Has your host patched?

What each host has said publicly, in its own blog or status page. Checked . Hosts are updating fast, so follow the source link for the latest.

HostStatusLatest public updateSource
WordPress.com, Pressable and WordPress VIPProtectedAutomattic worked with the PHP security team before the release and says every site it hosts (WordPress.com, Pressable, WordPress VIP, WP Cloud) was already protected. No action needed.WordPress.com blogOct 21, 19:57 UTC
SiteGroundProtectedSiteGround put server-level protections in place across all its servers before the release and says customers don't need to do anything.SiteGround blogOct 21
WP EnginePatchedWP Engine added protections at its CDN (Cloudflare and Fastly) shortly before the release, then finished deploying the PHP patches.WP Engine status pageOct 22, 01:19 UTC
KinstaPatchingKinsta is blocking attacks with Cloudflare rules. Patched PHP 8.3 and 8.5 builds are rolling out; 8.4, 8.2, 8.1 and 7.4 were still being validated at its last update. Kinsta says customers don't need to do anything.Kinsta status pageOct 21, 19:04 UTC
GoDaddyDepends on planManaged Hosting for WordPress and Windows Hosting: patched. Web Hosting (cPanel): GoDaddy has its vendor's patches and is deploying them to all servers, with mitigations in place meanwhile. VPS: you update PHP yourself.GoDaddy blogOct 22, 01:20 UTC
BluehostPatchingBluehost says most servers are updated and the rest are rolling out. Its mitigations in the meantime may limit upload file sizes.Bluehost statusOct 21, 12:18 ET
HostingerDepends on planEvery Hostinger plan except VPS: Hostinger manages PHP and says there's nothing to do. VPS: you update PHP yourself.Hostinger blogOct 21, 20:33 UTC
InMotion HostingDepends on planDedicated servers: patched, including backports for PHP 7.4, 8.0 and 8.1. VPS: updates in progress. Shared: protected by precautions while InMotion waits for CloudLinux's patched PHP builds.InMotion support newsOct 21, 18:04 UTC
20iPatched20i finished its rollout, including backported fixes for older PHP versions.StackStatusOct 21, 20:01 UTC
Liquid Web and NexcessIn progressLiquid Web is deploying patched PHP builds across its hosting platforms. Customers who aren't patched yet can run a package update from their control panel.Liquid Web statusOct 22, 10:33 ET
Rocket.netIn progressRocket.net is rolling out patches.Rocket.net statusOct 22
FlywheelNo statement foundWe haven't found a public statement. Flywheel is part of WP Engine, but WP Engine's update doesn't name it, so ask Flywheel support.No statement foundOct 22
PantheonNo statement foundWe haven't found a public statement yet. Check Pantheon's status page or ask support.Pantheon statusOct 22
CloudwaysNo statement foundWe haven't found a public statement yet. Cloudways manages the server stack, so ask support whether your server's PHP has been updated.No statement foundOct 22
HostGatorNo statement foundWe haven't found a public statement yet. HostGator is a Newfold Digital brand like Bluehost, but Bluehost's update doesn't name it, so ask HostGator support.No statement foundOct 22
IONOSNo statement foundWe haven't found a public statement yet. Ask IONOS support whether your package's PHP has been updated.No statement foundOct 22
DreamHostNo statement foundWe haven't found a public statement yet. Ask DreamHost support whether your plan's PHP has been updated.No statement foundOct 22
A2 Hosting (hosting.com)No statement foundWe haven't found a public statement yet. Ask support whether your plan's PHP has been updated.No statement foundOct 22
Cloudflare (CDN and firewall, not a host)Stopgap onlyCloudflare deployed firewall rules for every customer, free plans included. Its CTO called this a stopgap: it only helps if attackers can't reach your server directly, and it doesn't replace patching PHP.The RepositoryOct 21
Your own server, VPS or cloud instanceYou patchYou or your developer have to update PHP: install your OS vendor's patched package or PHP 8.5.12, 8.4.27, 8.3.36 or 8.2.35, then restart PHP-FPM or Apache.PHP security advisory

How to read this: “Protected” means the host says it blocked attacks before the release; “Patched” means it says it installed the fixed PHP; “Depends on plan” means managed plans are covered but self-managed servers aren’t. No statement doesn’t mean a host hasn’t patched: some patch quietly. If your host isn’t listed, ask them directly.

Check it yourself

Find your PHP version in a minute.

Then compare it with the fixed releases: 8.5.12, 8.4.27, 8.3.36, 8.2.35 or newer in the same branch. Anything 8.1 or older is end of life.

  • WordPressTools → Site Health → Info → Server. “PHP version” is the one serving your site.
  • cPanel hostingSoftware → MultiPHP Manager shows the version per domain. Hosts patch these builds themselves, so ask yours whether its packages include the fix.
  • Managed WordPress hostsWP Engine, Kinsta, Flywheel and similar show PHP in each site’s settings. The host updates the builds behind them.
  • Your own server or VPSRun php -v, then check the version your web server actually uses (PHP-FPM or Apache’s module). They can differ. Check containers and staging too.

What to do now

It depends on who runs your PHP.

  • On managed WordPress hostingYour host updates PHP. Confirm your plan is covered (staging and older sites too), then check for signs of compromise.
  • On shared cPanel hostingMake sure the PHP version selected for your site is one your host has patched. Some shared hosts are still on temporary mitigations while they wait for patched packages.
  • On a VPS or your own serverYou patch. Install your OS vendor’s package or 8.5.12, 8.4.27, 8.3.36 or 8.2.35, then restart PHP-FPM or Apache.
  • Stuck on PHP 8.1 or olderAsk whether your host applied the PHP team’s backport, then plan an upgrade to 8.3 or 8.4. PHP 8.2 itself reaches end of life on December 31, 2026. Code rescue can handle the plugin fallout.
  • If you can’t patch todayThe PHP advisory lists server-level stopgaps, like turning off session upload progress and changing how memory limits are set, but says they don’t make a server safe. Consider maintenance mode until it’s patched.
  • After patchingA patch doesn’t remove a backdoor. Look for unfamiliar admin users, new PHP files (especially in uploads), unknown scheduled tasks, and rotate passwords, keys and salts the server holds.

Want us to look?

A post-patch check, from the inside.

The checker above can only see what your site shows the world. We log in, confirm the fix is really in place, and look for anything left behind.

PHP2Shell post-patch check

$350

Flat fee for one WordPress site. If we find signs of compromise, cleanup is quoted before we start.

Go on to a Code Rescue block for cleanup or a PHP upgrade, and the $350 counts toward it.

Book a check
  • The fix, confirmedThe PHP actually serving your live site and its staging copies, checked from the inside, not guessed from headers.
  • A compromise sweepAdmin users, recently changed PHP files, the uploads folder, scheduled tasks, and WordPress core and plugin checksums.
  • Firewall and origin checkWhether attackers can reach your server around Cloudflare or your host’s firewall.
  • A plain-English summaryWhat we checked, what we found and what to do next, usually within two business days of access.

How it works

  1. 01Tell us the siteAnd who hosts it, if you know.
  2. 02We confirm and send access stepsBy email, usually the same business day. Nothing is billed until you say go.
  3. 03We check and report backA written summary, and a call if you want one.

Several sites, or stuck on old PHP?

That’s a Code Rescue job. See how it works.

Book a PHP2Shell post-patch check

What do you need? (optional, pick any)

$350 flat, billed only after you approve. Privacy policy.

FAQ

PHP2Shell questions.

Something else on your mind? Ask us directly.

What is PHP2Shell?

PHP2Shell is the nickname for two critical vulnerabilities in PHP itself, CVE-2026-109618 and CVE-2026-109619, disclosed on October 21, 2026. Under the right conditions they let an attacker run code on a web server without logging in. They are fixed in PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35.

Is my WordPress site affected by PHP2Shell?

If it runs on a PHP version without the fix, yes. The flaws are in PHP, not WordPress, so any WordPress site on an unpatched PHP is exposed, whatever its plugins or theme. Most managed WordPress hosts patched or blocked attacks on October 21; on a self-managed server, whoever runs the server has to update PHP.

Does updating WordPress or my plugins fix PHP2Shell?

No. WordPress, plugin and theme updates don’t change the PHP version your server runs. The WordPress security team says no WordPress update is required or planned. Only a patched PHP fixes it.

Which PHP versions fix PHP2Shell?

PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35, or newer releases in those branches. Linux distributions also ship patched packages that can keep an older version number. PHP 7.4, 8.0 and 8.1 no longer get regular updates; the PHP team published minimal source backports for them, but the lasting fix is upgrading.

My host says it patched. Do I need to do anything?

Mostly no, but confirm two things: that your plan is covered (some hosts treat VPS and self-managed plans differently) and that staging copies and other sites on the account were updated too. If your site was exposed between October 20 and the patch, check it for signs of compromise, because patching doesn’t remove a backdoor.

Does Cloudflare or a firewall protect me from PHP2Shell?

It helps, but it’s a stopgap. Cloudflare deployed PHP2Shell rules for all customers, free plans included, and many hosts added firewall rules before patching. A firewall only protects a server attackers can’t reach directly, and the PHP project says only an update is a complete fix.

I’m on PHP 7.4, 8.0 or 8.1. What should I do?

Ask your host whether it has applied the PHP team’s backport or a vendor fix for your version. Then plan an upgrade to PHP 8.3 or 8.4: PHP 8.2 itself reaches end of life on December 31, 2026. Older plugins and themes sometimes break on the upgrade, so test on a staging copy first.

How does the Codified PHP2Shell checker work?

It loads your homepage once, the way a browser would, and looks up your domain’s public DNS records. From the response it reads what your server chooses to show (the PHP version if advertised, the platform, the host and any firewall in front) and compares that with the fixed releases and your host’s public statement. It sends no attack traffic, and we don’t keep a list of the sites people check. The plain-English summary and the email to your host are written by AI from that result, or from a template if AI is unavailable.

Can a checker tell me my site is safe from PHP2Shell?

Not from the outside. Most well-run servers hide their PHP version, so an outside check often has to rely on the host’s public statement. Testing for the flaw directly means pushing PHP to run out of memory, which can crash its workers, so we don’t. To be sure, check the version from inside (WordPress Site Health or your hosting panel), or have someone check it for you.

How do I know if my site was hacked through PHP2Shell?

Common signs are admin users you don’t recognize, new or recently changed PHP files (especially in wp-content/uploads), unknown scheduled tasks, unexpected redirects, and bursts of multipart requests followed by memory errors or 500 errors in your server logs. None of these prove it either way. If you see them, patch first, then treat the server as compromised and rotate the passwords and keys it holds.

Sources

Where these facts come from.

Updates

What changed on this page.

  1. Published the checker and this page. Host statuses taken from 11 hosts’ own public updates.

/services/code-rescue

Patched, but not sure what you’re running?

Old PHP, a plugin that breaks on the upgrade, or a site nobody has touched in years. We get it current and keep it that way.