PHP2Shell on Joomla
PHP2Shell is a flaw in PHP, the program Joomla runs on. When that PHP is not fixed, the Joomla site is exposed. Joomla and extension updates do not change PHP. You or your host have to update PHP itself.
Last reviewed . Rules of .
What to do
- Find the PHP version your site runs (see below).
- Pick a fixed PHP release that your Joomla version supports.
- Update PHP, or ask your host to do it, and make sure PHP restarts.
- Open System Information again and check the new version.
The researchers showed an attack without a login on Joomla using CVE-2026-109618, on the latest Joomla container image at the time.
Find your PHP version
In the administrator, go to System, then System Information in the Information panel. On the System Information tab, two rows matter:
- PHP Version: the PHP that serves your site.
- WebServer to PHP Interface: how the web server runs PHP.
The PHP Information tab shows the full phpinfo() page. On the server, php -v shows the command-line PHP, which can differ from the web PHP.
What the PHP interface row means
The PHP project says every PHP setup that serves web requests is at risk. The interface row tells you which kind you have:
| Value | Meaning |
|---|---|
| apache2handler | Apache with mod_php. The PHP project calls this the highest risk, because a shown attack runs before your app code. |
| fpm-fcgi | PHP-FPM, usually behind nginx or Apache. Remote code execution was shown on FPM for CVE-2026-109619, through a suitable application operation. |
| cgi-fcgi | php-cgi over FastCGI. The PHP project lists it as at risk. |
| litespeed | LiteSpeed. The PHP project lists it as at risk. |
Whatever the row shows, the fix is the same: a fixed PHP. The interface only changes how high the risk is.
Which PHP your Joomla version supports
- Joomla 6: needs PHP 8.3.0 or newer and recommends PHP 8.4. Use 8.4.27 or 8.3.36.
- Joomla 5: needs PHP 8.1.0 or newer and recommends PHP 8.3. Use 8.3.36. PHP 8.1 has no fixed release, so do not stay on it.
PHP 8.2 security support ends on 2026-12-31. See Fixed versions for all branches.
How to update PHP
- Shared or managed hosting: pick a fixed PHP in your hosting panel, or ask your host to do it.
- Your own server: install your Linux vendor’s PHP updates. A vendor build can contain the fix under an older number, so compare the package version with your vendor’s advisory.
On shared or managed hosting, ask your host this:
Which PHP build serves my site, and does it include the fixes
for CVE-2026-109618 and CVE-2026-109619?
When the update is in, restart every PHP process and rebuild any containers. See after you update.
What the checker can see
For Joomla, the checker looks for:
- a generator tag that names Joomla
- scripts under
/media/system/js/, or thejoomla-script-optionssettings script
It does not use the Joomla session cookie, because its name is random.
A Joomla sign means PHP is probably in use. It does not decide the result: that comes from the PHP version the server reports. See how the checker works.
Check your site
The php2shell.fyi checker makes at most three ordinary GET requests to your site and shows every PHP signal it found. It cannot see inside your server, so your host has to confirm the result.
Sources
- PHP project: security advisory for PHP2Shell, 21 October 2026
- GHSA-w8hw-w9fx-j79w (CVE-2026-109618)
- GHSA-6wmf-4rv5-p3rp (CVE-2026-109619)
- PHP project: supported versions
- PHP2Shell researchers: php2shell.com
- Joomla manual: Technical requirements (Joomla 6)
- Joomla manual: Technical requirements (Joomla 5.4)
- Joomla source: System Information screen
- PHP manual: php_sapi_name