For Drupal, PHP2Shell remediation requires patching the PHP runtime. The application version helps identify compatibility blockers; it cannot establish exploitability or prove that either CVE is fixed.

Drupal - PHP compatibility for the PHP2Shell fix

Candidates match only this declaration against the first PHP2Shell fixes on supported branches. They do not establish tested compatibility, vendor support or a complete dependency match. PHP compatibility for the PHP2Shell fix ↗

Identify the PHP2Shell repair scope

Files and package identity

drupal/core

  • composer.lock
  • web/core/
  • web/modules/custom/

Drupal - Remove blockers to patch PHP2Shell

Drupal upgrades must keep core, core-recommended, Drush and contributed modules compatible. Remove deprecated custom APIs before a major move, and test database update hooks and configuration import on a copy. Drupal 7 is not represented by the Drupal 8+ Composer package. Do not treat these package minima as the supported-PHP policy for every later patch.

Dependencies and custom code to review

  • drupal/core-recommended
  • Drush
  • web/modules/contrib/
  • web/modules/custom/
  • Twig
  • config/sync/
  • hook_update_N()
Official upgrade documentation ↗

Check site functions after the PHP2Shell fix

Inventory before fixing PHP2Shell

Use an authorized working copy.

Command example
php -v
php --ini
composer --no-plugins show --locked drupal/core
composer --no-plugins check-platform-reqs --lock
composer --no-plugins prohibits php 8.3.36 --locked

Drupal - PHP2Shell patch verification

Verify both CVE fixes in the PHP actually serving this site. Replace or restart old Web workers, queue workers and replicas. A working homepage or a newer CLI binary is insufficient evidence.

3. Restart and verify every instance ↗

Official upgrade documentation

DrupalOriginal source ↗PHP security teamOriginal source ↗CVE-2026-109618Original source ↗CVE-2026-109619Original source ↗PHP2Shell repair - solve PHP upgrade errors↗

Related applications

← Back to application guides