PHP2Shell.fyi Check a site

Laravel and PHP2Shell

PHP2Shell is two serious flaws in PHP itself, the language Laravel runs on. A Laravel update does not fix them. Update PHP on the server, then restart PHP.

Last reviewed . Rules of .

What to do

  1. Find the PHP version that serves your site (see below).
  2. Update PHP to a fixed release that your Laravel version supports: 8.3.36, 8.4.27 or 8.5.12 (Laravel 12 also allows 8.2.35). Later releases in the same branch also work.
  3. Restart PHP-FPM or your web server, Octane and your queue workers.
  4. If your host runs PHP for you, ask them to do this and to confirm the version.

What the checker can see

The checker reads one ordinary page of your site. For a Laravel site it looks for:

The checker reads cookie names, never their values, and it cannot see your Laravel version. A Laravel signal only shows that the site runs PHP. The result depends on the PHP version alone.

Where to see the PHP version

If you serve the app with Laravel Octane on FrankenPHP, Octane downloads its own FrankenPHP binary, or you run a FrankenPHP Docker image. Our advice is to check the PHP version of that binary or image as well as the system PHP.

Supported PHP versions

Laravel ranges from the Laravel support policy. Fixed releases from php.net; later releases in each branch also have the fix.
LaravelPHP rangeSecurity fixes untilFixed PHP releases in range
138.3 – 8.517 March 20288.3.36, 8.4.27, 8.5.12
128.2 – 8.524 February 20278.2.35, 8.3.36, 8.4.27, 8.5.12
118.2 – 8.4Ended 12 March 20268.2.35, 8.3.36, 8.4.27

Laravel 11 and older get no more security fixes from Laravel. Update PHP first, then plan the Laravel upgrade as a separate task.

How to update PHP

Notes

Sources

Check your site

The checker loads one ordinary page of your site, with no attack traffic, and shows the public PHP signals it found.

Check my site