Skip to content
SecurityPHP2Shell affects most WordPress sites. Am I affected? →
presscomet
Security

WP2Shell vs PHP2Shell: Two Bugs, Two Fixes

WP2Shell and PHP2Shell have similar names and get confused constantly, but they are different vulnerabilities fixed in different ways. Here's a plain-English comparison, who is responsible for each, and a checker for the PHP side.

By the Presscomet teamPublished 10 min read

On this page
  1. Are they the same?
  2. Side by side
  3. PHP2Shell: a PHP bug
  4. WP2Shell: a WordPress bug
  5. Who fixes each
  6. Check you're covered
  7. A stack with no PHP

Are WP2Shell and PHP2Shell the same thing?

No. They are two different vulnerabilities, disclosed three months apart, in two different pieces of software. The names are close enough that people search for one and find the other, and both can end with an attacker running a “shell” on your server, so the confusion is understandable. But if you treat them as one problem you will fix the wrong thing.

Here is the one-sentence version of each:

  • PHP2Shell is a pair of bugs in PHP itself — the language runtime your host installs to run WordPress. It is fixed by updating PHP on the server, which on most sites is your host’s job.
  • WP2Shell is a flaw in WordPress code. It is fixed by the ordinary WordPress, plugin and theme updates you already run — your job.

That difference — whose software has the bug, and therefore who patches it — is the whole story. Everything below just fills it in.

PHP2Shell CVEs
CVE-2026-109618 · CVE-2026-109619
PHP2Shell fixed by
Updating PHP (host)
WP2Shell CVEs
CVE-2026-63030 · CVE-2026-60137
WP2Shell fixed by
Updating WordPress (you)

WP2Shell vs PHP2Shell, side by side

If you only read one thing, read this table. A site is only fully covered when both columns are green.

PHP2ShellWP2Shell
What it isTwo bugs in the PHP language runtimeA flaw in WordPress code (core/plugin)
CVE IDsCVE-2026-109618 · CVE-2026-109619CVE-2026-63030 · CVE-2026-60137
DisclosedOctober 2026July 2026
SeverityCritical · CVSS v4.0 9.2WordPress-layer flaw (see your plugin/host advisory)
Where the bug livesIn PHP itself — below WordPressInside WordPress / a plugin
Who fixes itYour host / server admin (update PHP)You (update WordPress, plugins, themes)
How it's fixedPatch PHP to a fixed build + restart workersRun normal WordPress & plugin updates
Do WP updates fix it?No — WordPress updates can't touch PHPYes — that's exactly the fix

The trap that catches most people

A support agent tells you “WordPress is fully up to date, so you’re safe.” That is true for WP2Shell and irrelevant for PHP2Shell, because PHP2Shell is below WordPress. The reverse mistake happens too: patching PHP does nothing for a WordPress-code flaw. Check both layers separately.

PHP2Shell: a bug in PHP itself

Every WordPress site is a pile of PHP files, and something has to read and run them on each request: the PHP runtime. PHP2Shell is the nickname for two bugs in that runtime, CVE-2026-109618 and CVE-2026-109619, both rated CVSS v4.0 9.2 (Critical) by the PHP project. Under the right conditions they let an unauthenticated attacker run code with the privileges of the web server’s PHP worker.

Both are about PHP losing track of its own memory while handling a request:

  • CVE-2026-109618 — an out-of-memory condition interrupts PHP while a request is only partly set up, and the clean-up code then trusts data that was never finished.
  • CVE-2026-109619 — internal state outlives the memory it points to, so a later request on the same worker can reuse the leftovers. Researchers also showed it can leak chunks of server memory, which may contain passwords, session tokens or API keys.

Because some demonstrated attack paths run before WordPress has loaded a single line (during PHP’s own request parsing), WordPress updates and security plugins cannot fix this one. The PHP project’s guidance is blunt: updating PHP is the only complete fix. There is a full walkthrough in our PHP2Shell and WordPress guide, and a deeper, CVE-by-CVE explainer in CVE-2026-109618 & CVE-2026-109619 explained.

WP2Shell: a bug in WordPress

WP2Shell (tracked as CVE-2026-63030 and CVE-2026-60137) is a separate WordPress-layer vulnerability that surfaced in July 2026, months before PHP2Shell existed. It lives in WordPress code, not in the PHP runtime, which means it behaves like the WordPress vulnerabilities you are used to: it was addressed through the normal update channel.

In practice that means WP2Shell is fixed the boring, familiar way — by keeping WordPress core, your plugins and your themes current. If you have automatic updates enabled, or you have applied updates since July 2026, you are most likely already covered. The reason it keeps coming up now is simply that its name collides with PHP2Shell in search results.

Why both end in “2Shell”

“2Shell” is just shorthand for “leads to a shell” — remote code execution, where an attacker can run commands on your server. Plenty of unrelated bugs get that nickname. Shared outcome, different cause: that is exactly why you have to fix them in different places.

Who fixes each, and how

The fastest way to not waste an afternoon is to route each bug to the right owner.

Owner: whoever controls the server’s PHP. On managed or shared hosting that is your host; on a VPS it is you.

  1. Find your PHP version in Tools › Site Health › Info › Server.
  2. Compare it with the fixed releases: 8.5.12, 8.4.27, 8.3.36, 8.2.35 (21 Oct 2026). Older branches need a vendor-backported build or an upgrade.
  3. Update PHP, then restart PHP-FPM / Apache / LiteSpeed so the patched code is actually loaded.

Not sure whether your host did this? Our what-to-ask-your-host guide has a copy-paste email, and how to check and update your PHP version covers switching versions safely.

For the bigger picture on keeping both layers healthy — updates, backups, logins and hosting choices — see our WordPress security guide.

How to check you’re covered for both

For WP2Shell, the check is quick: open Dashboard › Updates and confirm WordPress core, plugins and themes show no pending updates. If they’re current, you’re covered.

For PHP2Shell, answer three questions and the checker below will tell you where you stand. It runs entirely in your browser and sends nothing anywhere.

Interactive checker

Am I affected by PHP2Shell?

Runs in your browser · nothing is sent

  1. PHP version
  2. Server API
  3. Hosting
  4. Verdict

Find it in wp-admin under Tools › Site Health › Info › Server. Copy the whole number, e.g. 8.3.14.

Try:

A low PHP version number isn’t always bad news

Linux distributions and some hosts backport the PHP2Shell fix without changing the version string — one site was reported still showing 8.4.26 while being fully protected. So a number below 8.4.27 does not always mean unpatched. Ask your host to confirm, in writing, that both CVEs are fixed and when PHP was restarted.

A stack where PHP2Shell can’t apply

There is a reason PHP2Shell and WP2Shell can be confused in the first place: a classic WordPress site stacks WordPress code on top of a PHP runtime, so a bug in either layer is yours to worry about. Take one layer out of the request path and that whole category of problem goes with it.

That is what Presscomet is: a WordPress-compatible platform with the same wp-admin, block editor, permalinks and REST API, rebuilt to run on Node.js with a single SQLite file and no PHP runtime at all. With no PHP in the picture, PHP2Shell and the entire PHP-runtime class of bugs simply don’t apply.

What Presscomet does — and doesn't — change

Removing PHP removes the PHP2Shell class of bug. It does not make a site “unhackable”: Presscomet has its own Node.js runtime, npm dependencies, admin login, SQLite database and host operating system, and all of those still need patching and will have their own advisories one day. It also doesn’t run PHP plugins — the common jobs are built in — and WooCommerce stores aren’t supported.

  1. Step 1: Keep both WordPress layers patched today

    Update WordPress and plugins for WP2Shell, and confirm your host patched PHP for PHP2Shell. That covers the live risk right now.
  2. Step 2: Decide who owns each layer going forward

    Write down who patches PHP and who patches WordPress on your site. The sites that came through October calmly were the ones that already knew.
  3. Step 3: Consider taking PHP out of the path

    If your site is mostly content, a PHP-free stack means PHP-runtime bugs stop being your problem entirely.

Curious whether it fits your site? Check your site with the migration tool — it only reads your public pages and lists what would move over, and it never changes anything on your current host.

Sources

Facts checked against these sources on October 24, 2026. Things change quickly; the vendor advisory always wins.

  1. [1]PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 security releases (PHP2Shell) — PHP.net
  2. [2]GHSA-w8hw-w9fx-j79w (CVE-2026-109618) — php-src on GitHub
  3. [3]GHSA-6wmf-4rv5-p3rp (CVE-2026-109619) — php-src on GitHub
  4. [4]PHP2Shell: what it is, and what to do on your WordPress site (notes WP2Shell is separate) — Meow Apps
  5. [5]PHP2Shell (CVE-2026-109618, CVE-2026-109619) — SOCRadar
  6. [6]PHP2Shell FAQ — watchTowr
  7. [7]PHP2Shell exploitation started days before patches — SecurityWeek
  8. [8]Known Exploited Vulnerabilities catalog — CISA

Frequently asked questions

Are WP2Shell and PHP2Shell the same thing?

No. PHP2Shell is the nickname for two vulnerabilities in the PHP runtime itself (CVE-2026-109618 and CVE-2026-109619, disclosed October 2026). WP2Shell refers to a separate WordPress vulnerability (CVE-2026-63030 / CVE-2026-60137) from July 2026. The names sound alike and both can lead to a web shell, but they live in different software and are fixed in different ways.

What is the difference between PHP2Shell and WP2Shell?

PHP2Shell is a flaw in PHP, the language runtime underneath WordPress, so it affects any PHP website and is fixed by updating PHP on the server. WP2Shell is a flaw in WordPress code, so it is fixed by updating WordPress, plugins and themes the normal way. One is your host's responsibility, the other is yours.

Does updating WordPress fix PHP2Shell?

No. PHP2Shell is in the PHP runtime, not in WordPress core, plugins or themes. Updating WordPress is good practice and fixes WordPress-layer bugs like WP2Shell, but only updating PHP (or a backported build from your host) fixes PHP2Shell.

Does updating PHP fix WP2Shell?

No. WP2Shell is a WordPress-layer flaw, so a patched PHP runtime does nothing for it. You fix WP2Shell by applying normal WordPress core, plugin and theme updates. You need both fixes to be fully covered.

Which is more urgent, WP2Shell or PHP2Shell?

Both deserve prompt action, but as of late October 2026 PHP2Shell is the live incident: it was disclosed days before its patch, rated critical (CVSS 9.2), can be unauthenticated, and saw mass scanning. WP2Shell was handled through WordPress's normal update channel back in July. If your WordPress and plugins auto-update you are likely already covered for WP2Shell; PHP2Shell may still be waiting on your host.

Is PHP2Shell in the CISA KEV catalog?

Not as of 24 October 2026. CISA urged organisations to update PHP immediately and advised taking PHP systems offline if they can't be patched, but neither PHP2Shell CVE had been added to the Known Exploited Vulnerabilities catalog when this was last checked.

Is Presscomet affected by either one?

Presscomet has no PHP runtime, so PHP2Shell and the whole PHP-runtime class of bugs do not apply to it. It is a reimplementation rather than WordPress running on PHP, so WordPress-code CVEs like WP2Shell don't apply in the same form either. That does not make it unhackable: it has its own Node.js runtime, npm dependencies, admin login, SQLite and host OS that all still need patching.

Run WordPress without a PHP runtime to patch.

Presscomet keeps your wp-admin, editor, URLs and content, and serves pages without PHP or MySQL. Check your site for free, then migrate in one click — your old site is only ever read.

Check my site