WP Theme Checker

PHP2Shell checker: is this site's PHP patched?

Paste any URL into this PHP2Shell checker. It reads the PHP version the server announces and compares it with the releases PHP shipped on October 21, 2026 to fix PHP2Shell (CVE-2026-109618 and CVE-2026-109619). Free, no signup.

What is PHP2Shell?

PHP2Shell is the name for two flaws in the PHP engine, CVE-2026-109618 and CVE-2026-109619, that can allow unauthenticated remote code execution. Both are rated 9.2 on CVSS v4.0. PHP fixed them on October 21, 2026. PHP2Shell is a PHP flaw, not a WordPress one, so it applies to any site that runs on PHP.

watchTowr lists PHP-FPM, Apache mod_php, php-cgi, LiteSpeed and FrankenPHP as in scope. PHP's own advisory says there are no complete mitigations and that updating is the only safe choice.

Which PHP versions fix PHP2Shell?

PHP 8.2.35, 8.3.36, 8.4.27 and 8.5.12 fix PHP2Shell, all released on October 21, 2026. PHP 8.1 and older are end of life and got no new release. The PHP security team published source patches for 7.4, 8.0 and 8.1, so on those versions only the host can say whether the patch is applied. PHP published no fix for 7.3 and older, but vendors sell backports for some of them (Sansec lists Freexian, ZendPHP, TuxCare, Ubuntu Pro and CloudLinux), so there too only the host can say. The lasting fix is moving to a supported version.

PHP branchFixed releaseBranch status
8.58.5.12Supported
8.48.4.27Supported
8.38.3.36Supported
8.28.2.35Supported until December 31, 2026
7.4, 8.0, 8.1No new release; source patches from the PHP security teamEnd of life
7.3 and olderNo fix from PHP; some vendors sell backportsEnd of life

What does this PHP2Shell checker read, and what can't it see?

The checker reads the PHP version from the X-Powered-By header the server sends with its home page and compares it with PHP's fixed releases. It cannot see backported fixes: Linux distributions patch PHP without changing the version number, so an old number is a reason to check, not proof of exposure.

Every scan gets one of 6 verdicts:

  1. Older than PHP's fixed release: the version is below 8.2.35, 8.3.36, 8.4.27 or 8.5.12 on its branch.
  2. End of life: no new PHP release: PHP 8.1 or older. PHP published source patches for 7.4, 8.0 and 8.1 but no release, so only the host can say whether a patch is applied.
  3. Distribution build: the version carries a package suffix such as -4ubuntu2.24, and only the package changelog shows whether the fix is in.
  4. At or above PHP's fixed release: the version is 8.2.35, 8.3.36, 8.4.27, 8.5.12 or newer on its branch.
  5. Version we can't compare: the server announces a PHP version this checker cannot compare with PHP's fixed releases, such as one without a patch number, a pre-release build or a newer branch.
  6. PHP version not announced: the server hides it. That is the common case: of 32,347 sites in the WP Theme Checker index, 1.8% announce a PHP version.

The same scan also runs the WordPress theme checker, the plugin scan and a check of the WordPress core version.

What should you do if your PHP is behind?

Update PHP to the fixed release on your branch, or move to a supported branch, then restart every PHP worker so the new build loads. On a distribution build, the package changelog confirms the fix. The 5 steps:

  1. Confirm the installed version on the server (php -v or the hosting panel), not just the header.
  2. Update to 8.2.35, 8.3.36, 8.4.27 or 8.5.12, or move off 8.1 and older to a supported branch.
  3. Restart PHP-FPM, Apache or LiteSpeed so every worker runs the new build.
  4. On a distribution build, search the package changelog for CVE-2026-109618 (zgrep on Debian and Ubuntu, rpm -q --changelog on the Red Hat family).
  5. Treat PHP's partial mitigations (memory_limit=-1, session.upload_progress.enabled=0) as a stopgap; PHP says they do not make an installation safe.

Scepter Marketing, the team behind WP Theme Checker, does this work: it confirms what the server runs, updates PHP, and tests the site afterwards. Scan the site above and use the "Have Scepter update PHP" button on the result, or start from a full WordPress audit.

Scan a site now ↑

PHP2Shell FAQ

Is PHP2Shell being exploited?

Attempts have been reported. Help Net Security reports that Amazon Threat Intelligence recorded a PHP2Shell exploitation attempt on October 17, 2026, before disclosure, and watchTowr reports exploitation in the wild. Sansec notes that public proof-of-concept code mostly needs a second bug, such as local file inclusion, to work.

What should I do if I run PHP 8.1 or older?

Move to a supported PHP branch, 8.2 or newer: that is the lasting fix. PHP 8.1 and older are end of life and got no new release, but the PHP security team published source patches for 7.4, 8.0 and 8.1, and some Linux distributions ship backported packages that keep the old version number, so only the host can say whether a patch is applied. PHP published no fix for 7.3 and older, but vendors sell backports for some of them (Sansec lists Freexian, ZendPHP, TuxCare, Ubuntu Pro and CloudLinux), so there too only the host can say.

Does Cloudflare protect against PHP2Shell?

Partly. Cloudflare says PHP sites behind it already have an initial set of WAF rules for the known exploit vectors. A firewall rule is not a fix: PHP's advisory says updating is the only safe choice.

Is PHP2Shell the same as wp2shell?

No. PHP2Shell (October 2026) is a flaw in PHP itself, fixed by updating PHP. wp2shell (July 2026) was a pair of WordPress core flaws, fixed by updating WordPress. A WordPress site needs both up to date.

Sources, read October 22, 2026: php.net release announcements, watchTowr FAQ, Sansec, Help Net Security.