Research collected from outside sources and what this site derives from them; every fact links to a saved copy of its source Research or story?

Patching: which versions get a fix, and from whom

Who can get a fix for php2shell, for which version of PHP, and from whom. Upstream is the PHP project; downstream is everyone who ships PHP to someone else: operating systems, hosting panels, cloud platforms, container images, paid support. The downstream rows are the NCSC-NL inventory's own rows at commit cca173c64ec5 (22 October, 08:40 UTC), each named exactly so the gate can check it is there and has the status quoted. The inventory changes by the hour; these are the statuses at that commit.

46 fixed · 206 still affected · 418 under investigation · 3 not affected, of 674 products in the NCSC-NL inventory at commit cca173c64ec5 NCSC-NL

The version ladder

Each PHP branch, what the PHP project itself shipped for it, and some of the companies that shipped a fix for it anyway, or had not yet.

PHP branchUpstreamWhat the PHP project shippedIn the CVE recordDownstream, at the inventory commitSources
8.5, 8.4, 8.3, 8.2supportedReleases 8.5.12, 8.4.27, 8.3.36 and 8.2.35, with signed tags and Windows binaries; the full engine changeyes
  • fixed The PHP Group / PHP Windows maintainers: Official PHP Windows binary ZIP distribution 8.5.12, 8.4.27, 8.3.36, 8.2.35
  • fixed Canonical / Ubuntu package maintainers: Ubuntu Noble php8.3-fpm binary package 8.3.6-0ubuntu0.24.04.13
  • fixed Debian PHP Maintainers: Debian trixie PHP 8.4 FPM package 8.4.27-1~deb13u1
  • fixed Red Hat: Red Hat Enterprise Linux 9 php:8.2 module 8.2.35-1.module+el9.8.0+25111+a1450321
  • fixed Docker Official Images maintainers: Docker Official Image: php
  • still affected Plesk: Plesk for Windows All shipped PHP versions
php.net php-src CVE record NCSC-NL
8.1end of lifeA minimal source backport on a branch; no release, no binariesno
  • fixed Canonical / Ubuntu package maintainers: Ubuntu Jammy php8.1-fpm binary package 8.1.2-1ubuntu2.28
  • fixed Heroku / Salesforce: Heroku PHP buildpack and application runtime Heroku PHP 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12; rebuilt 8.1.34
  • fixed WebPros / cPanel: cPanel EasyApache 4 / MultiPHP EA4 25.91: ea-php82 8.2.35; ea-php83 8.3.36; ea-php84 8.4.27
  • still affected Plesk: Plesk Obsidian hosted-site PHP
php.net CISA
8.0end of lifeA minimal source backport on a branch; no release, no binariesno
  • fixed CloudLinux / TuxCare: CloudLinux Alt-PHP 8.0 package for Alpine Linux 3.23
  • fixed WebPros / cPanel: cPanel EasyApache 4 / MultiPHP EA4 25.91: ea-php82 8.2.35; ea-php83 8.3.36; ea-php84 8.4.27
php.net
7.4end of lifeA 17-file commit labelled 'Minimal mitigation for EOL version', on a branch; no release, no binariesno
  • fixed Canonical / Ubuntu package maintainers: Ubuntu Focal php7.4-fpm binary package 7.4.3-4ubuntu2.29+esm5
  • fixed CloudLinux / TuxCare: CloudLinux Alt-PHP 7.4 fixed package set
  • fixed WebPros / cPanel: cPanel EasyApache 4 / MultiPHP EA4 25.91: ea-php82 8.2.35; ea-php83 8.3.36; ea-php84 8.4.27
php-src php/php-src, read from a clone
7.3 down to 5.xend of lifeNothing: no backport, no branchno
  • fixed Canonical / Ubuntu package maintainers: Ubuntu Bionic php7.2-fpm binary package 7.2.24-0ubuntu0.18.04.17+esm14
  • fixed Canonical / Ubuntu package maintainers: Ubuntu Xenial php7.0-fpm binary package 7.0.33-0ubuntu0.16.04.16+esm22
  • fixed Canonical / Ubuntu package maintainers: Ubuntu Trusty php5-fpm binary package 5.5.9+dfsg-1ubuntu4.29+esm18
NCSC-NL Wiz on X CERT-FR

Why not every version

How a fix reaches a server

The same fix arrives in very different ways depending on who a site gets its PHP from. Read from the NCSC-NL inventory, row by row.

Patched for you

The platform runs PHP and updates it; the customer does nothing.

  • fixed Google Cloud: Google App Engine Standard PHP runtime PHP 8.2+ supported runtimes

Fixed, but you must rebuild and redeploy

The platform or image publisher has a fixed runtime, and nothing already running changes until its owner rebuilds. 'Existing deployments are not automatically patched' is Google's phrase for App Engine Flexible.

  • fixed Heroku / Salesforce: Heroku PHP buildpack and application runtime Heroku PHP 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12; rebuilt 8.1.34
  • fixed Docker Official Images maintainers: Docker Official Image: php
  • fixed Bref project: Bref PHP Lambda runtime layers Bref 3: php-85:21, php-84:24, php-83:24, php-82:26; Bref 2 l
  • still affected Google Cloud: Google App Engine Flexible PHP runtime App Engine Flexible PHP runtimes not redeployed onto patched
  • still affected Google Cloud; customer image publisher: Google Cloud Run customer PHP container option Cloud Run customer containers with unpatched PHP on their re

A package update from your operating system

The distribution backports the fix into the PHP version it shipped, and an ordinary system update installs it.

  • fixed Canonical / Ubuntu package maintainers: Ubuntu Noble php8.3-fpm binary package 8.3.6-0ubuntu0.24.04.13
  • fixed Debian PHP Maintainers: Debian trixie PHP 8.4 FPM package 8.4.27-1~deb13u1
  • fixed Arch Linux package maintainers: Arch Linux Extra PHP package 8.5.12-1
  • fixed Red Hat: Red Hat Enterprise Linux 9 php:8.2 module 8.2.35-1.module+el9.8.0+25111+a1450321

Extended support for versions upstream has abandoned

A commercial supplier backports the fix to an end-of-life version for customers of its extended-support programme: Canonical under Ubuntu Pro and Ubuntu Pro Legacy Support for PHP 5.5, 7.0, 7.2 and 7.4; CloudLinux and TuxCare for 7.4 and 8.0.

  • fixed Canonical / Ubuntu package maintainers: Ubuntu Trusty php5-fpm binary package 5.5.9+dfsg-1ubuntu4.29+esm18
  • fixed Canonical / Ubuntu package maintainers: Ubuntu Xenial php7.0-fpm binary package 7.0.33-0ubuntu0.16.04.16+esm22
  • fixed Canonical / Ubuntu package maintainers: Ubuntu Bionic php7.2-fpm binary package 7.2.24-0ubuntu0.18.04.17+esm14
  • fixed Canonical / Ubuntu package maintainers: Ubuntu Focal php7.4-fpm binary package 7.4.3-4ubuntu2.29+esm5
  • fixed CloudLinux / TuxCare: CloudLinux Alt-PHP 7.4 fixed package set

Through your hosting control panel

Shared hosting runs the PHP its panel ships, often several versions side by side; the site owner can only pick among them. Here the panels part ways: cPanel backported to 7.4, 8.0 and 8.1; Plesk's end-of-life Linux builds and all its Windows builds were still affected.

  • fixed WebPros / cPanel: cPanel EasyApache 4 / MultiPHP EA4 25.91: ea-php82 8.2.35; ea-php83 8.3.36; ea-php84 8.4.27
  • still affected Plesk: Plesk Obsidian hosted-site PHP
  • still affected Plesk: Plesk for Windows All shipped PHP versions
  • fixed Hestia Control Panel project: HestiaCP hosted-site PHP-FPM / MultiPHP option HestiaCP hosted-site PHP using patched distribution/Sury pac

Still waiting on the supplier

The product embeds its own PHP and its supplier had not shipped a fix at that commit. Most of the inventory is here or further back: 418 of 674 rows were still under investigation.

  • still affected Plesk: Plesk sw-engine internal PHP management runtime
  • still affected Hestia Control Panel project: HestiaCP hestia-php internal runtime Unpatched HestiaCP bundled hestia-php runtime; fix still bei
  • still affected CloudLinux: CloudLinux legacy ea-PHP extended-support packages

What the fix changes

The reason an operator hesitates: the fix is not invisible.

Not known yet

The story behind this page is Why can't every version of PHP just be patched?, with the editor's argument on who should own patching. The data is data/patching.json; the gate checks that every downstream row names a product in the inventory with the status shown.