Is my Drupal site affected by PHP2Shell?
Your Drupal site is affected if the PHP it runs on is below the fixed release for its branch, or is PHP 8.1 or older without a vendor patch. PHP2Shell (CVE-2026-109618 and CVE-2026-109619) is a pair of flaws in PHP itself, so every Drupal site on an unpatched PHP is in scope, whatever its core version or modules.
Drupal has been tested specifically. Wiz reports that it demonstrated unauthenticated remote code execution on Drupal deployments, as well as on WordPress and Joomla.
Does updating Drupal core fix PHP2Shell?
No. Core and module updates don’t change the PHP your server runs. The Drupal Security Team said so directly in PSA-2026-10-20, published ahead of the PHP release: “Updating to a PHP release containing the patch to these vulnerabilities is the only complete mitigation.” The PSA tells you to apply the update yourself if you manage PHP, and to follow your host’s instructions if they manage it.
Don’t confuse this with the Drupal core release of 14 October 2026 (announced in PSA-2026-10-12). That fixed a separate Drupal bug. Install it too, but it does nothing for PHP2Shell.
How do I find the PHP version Drupal runs on?
You can check without server access:
- Sign in as an administrator.
- Open Reports → Status report (
/admin/reports/status). - Note the PHP version shown there. This is the PHP serving your website.
With Drush, drush status shows the PHP version too, but it reports the command-line PHP, which can differ from the PHP-FPM or Apache module that serves pages. Trust the Status report for the website.
Enter the version in the PHP2Shell checker to see whether it is fixed. More methods: check PHP version.
Which PHP version should my Drupal site move to?
Move to the fixed release on a PHP branch your Drupal version supports. Drupal’s PHP requirements page lists:
| Drupal | Supported PHP | Fixed releases to choose from |
|---|---|---|
| 10.4, 10.5, 10.6 | 8.1, 8.2, 8.3, 8.4 | 8.2.35, 8.3.36, 8.4.27 |
| 11.1, 11.2 | 8.3, 8.4 | 8.3.36, 8.4.27 |
| 11.3, 11.4 | 8.3, 8.4, 8.5 | 8.3.36, 8.4.27, 8.5.12 |
| 12.0 | 8.5 | 8.5.12 |
| Branch | First fixed release |
|---|---|
| PHP 8.2 | 8.2.35 |
| PHP 8.3 | 8.3.36 |
| PHP 8.4 | 8.4.27 |
| PHP 8.5 | 8.5.12 |
| 8.1 and older | No new release; official source patches for 7.4, 8.0 and 8.1 |
Drupal 10 still supports PHP 8.1, but PHP 8.1 gets no new release from PHP. Use a vendor-patched package (for example, Ubuntu shipped a fixed php8.1 for 22.04) or move to 8.2 or newer. Drupal 7 is end of life; if it runs on old PHP, see PHP end of life. The quickest safe move is usually the fixed release on the branch you already use, such as 8.3.x to 8.3.36.
Who updates PHP for my Drupal site?
It depends on how the site is hosted.
| How your site is hosted | Who updates PHP | Guide |
|---|---|---|
| Managed Drupal platform or shared hosting | Your host | PHP2Shell patch: ask your host |
| cPanel or Plesk | You switch the version, your host provides it | Change PHP version in cPanel |
| Your own Ubuntu or Debian server | You | Update PHP on Ubuntu |
| Docker | You rebuild the image | Docker PHP image |
After the update, restart PHP-FPM or Apache, clear Drupal’s cache and reload the Status report to confirm the new version.
How do I tell if my Drupal site was already compromised?
Updating PHP stops new attacks but says nothing about the past. In Drupal, check:
- Users: accounts with the Administrator role you don’t recognise (People → filter by role).
- Files directory:
.phpfiles insites/default/files, which should hold only uploads. - Modules: anything under Extend or
modules/customyou didn’t install. - Settings: unexpected changes to
settings.phpor.htaccess.
If you find something, follow the full compromise checklist before cleaning up, then change passwords and the hash_salt in settings.php.
Does a WAF or a PHP setting protect Drupal until I patch?
Neither is a fix. Cloudflare says its WAF blocks known attack patterns, and it also saw attackers altering their requests to slip past. Drupal modules run on top of PHP and can’t patch it, and PHP has confirmed at least one attack path that runs before any application code. PHP’s official stopgaps only block specific paths; see the CVE-2026-109618 workaround for their limits. Use the PHP2Shell patch guide to get PHP updated.
Did the Drupal Security Team release a Drupal update for PHP2Shell?
No. The team published a public service announcement, PSA-2026-10-20, telling site owners to update PHP. There is no Drupal core or module release for PHP2Shell, because the flaw is in PHP.
My Drupal site runs on Pantheon, Acquia or another managed platform. What do I do?
Your platform updates PHP. Follow its status page or notices, then confirm the PHP version in your site's Status report. If it is still below the fixed release, contact the platform's support.
Check your PHP for PHP2Shell
Enter the version your website reports. We compare it with the first fixed release for its branch and tell you what to do next.
PHP2Shell checker →Sources
The core facts on this page (fixed versions, CVE details, vendor packages and agency warnings) come from official sources. Research, news and community posts are labelled as such.
- Security advisory: Critical remote code execution vulnerabilities, update nowOfficial The PHP Group
- RCE via OOM corruptionOfficial The PHP Group
- RCE via stale global stateOfficial The PHP Group
- PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the InternetResearch Wiz Research
- Cloudflare deploys protections against php2shell vulnerabilityCDN vendor Cloudflare
- USN-8948-1: PHP vulnerabilitiesVendor Canonical
- Critical PHP update on Wednesday, October 21, 2026 (14:00 UTC) - PSA-2026-10-20Official Drupal Security Team
- PHP requirementsOfficial Drupal.org