1. Red
  2. Learn
  3. Hosting panels

PHP2Shell on cPanel: find and update PHP per domain

PHP2Shell on cPanel: see which PHP each domain runs in MultiPHP Manager or Select PHP Version, update EasyApache, restart PHP-FPM and confirm the fix ran.

By Alexander Gusev, run.cloudPublished 24 October 20269 min readHow we check facts
On this page
  1. Which PHP does each of my cPanel domains use?
  2. Can I update PHP myself from cPanel?
  3. What do I ask my cPanel host?
  4. What have cPanel hosts said? (checked 24 October 2026)
  5. How does a server owner update every PHP on cPanel?
  6. Does a firewall rule or setting replace the update?
  7. Am I affected? A three-state self-test
  8. What if my PHP is end of life, and did anything get in first?

On cPanel, PHP2Shell (CVE-2026-109618 and CVE-2026-109619) is fixed by an updated PHP package installed on the server, and a setting in your account cannot do that. Account holders can see each domain's PHP branch in MultiPHP Manager or Select PHP Version, then ask the host for the fixed build and a worker restart. Server owners update the EasyApache packages and restart PHP-FPM.

FactDetailSource
CVE idsCVE-2026-109618 and CVE-2026-109619, remote code execution in PHP core, CVSS v4 9.2PHP notice
Upstream fixes8.5.12, 8.4.27, 8.3.36, 8.2.35, released 21 October 2026PHP notice
cPanel EasyApache fixEasyApache 4 version 25.91, 21 October 2026, covers ea-php74 to ea-php85cPanel change log
cPanel's own PHPcPanel and WHM build 138.0.18, 21 October 2026, updates cpanel-php84 to 8.4.27cPanel 138 change log
ExploitationAWS honeypot attempts from 17 October; neither CVE in the CISA KEV feed of 23 October 2026AWS (vendor-claimed)
Checked24 October 2026this page

The bug is in the PHP engine, so WordPress or plugin updates do not close it. The wider explanation is in the plain-language write-up of the flaw, and the tracker holds the rest of this week's incidents. Other panel problems are collected in the other hosting panel guides, and the earlier cPanel and WHM flaw has its own host questions.

Which PHP does each of my cPanel domains use?

A cPanel server can run several PHP versions side by side, and each domain is assigned to one. Two tools show the assignment, and which one you have depends on the host.

  • MultiPHP Manager lists each domain, its PHP version, an "Inherited" label when it follows the system default, and whether PHP-FPM is on, per cPanel's documentation. Bluehost describes the same screen under Software in cPanel in its help article.
  • Select PHP Version is the icon label for CloudLinux's PHP Selector. Namecheap's guide shows it on a shared cPanel server, and it also lets an addon domain run a different version from the account.

Check every domain, including addon domains and subdomains. A domain you pinned to an old version years ago keeps that version after the host updates its default.

Neither screen tells you the build. Both show a branch such as 8.3. The WordPress Site Health page (Tools, Site Health, Info, Server), which GoDaddy points to, shows a version string, and on a backported package that string keeps its old number.

Can I update PHP myself from cPanel?

On shared hosting, no. The version picker only lists versions installed on the server and available to your account, per cPanel's documentation. Choosing 8.4 moves your domain to the 8.4 package the host installed. It installs nothing.

That gives you two jobs. First, make sure no domain is pinned to a branch the host has stopped updating. Second, get the host to confirm the build that serves the domain. If the host has patched, moving a domain from 7.4, 8.0 or 8.1 to a tested 8.4 or 8.5 is a sound step, because cPanel marked ea-php74, ea-php80 and ea-php81 end of life on 29 April 2026 according to its change log.

Back up first and test the site. Old plugins and themes are what usually break on a newer branch.

What do I ask my cPanel host?

Send this for your own domain and keep the reply:

For [your domain], which PHP package or build serves web requests, and does it include the fixes for CVE-2026-109618 and CVE-2026-109619? On cPanel, is that an ea-php package or a CloudLinux alt-php package, and which version of it is installed? At what date and time were Apache, PHP-FPM or LiteSpeed workers restarted after the install? Do I need to change anything on my side?

The ea-php versus alt-php part matters because the two are updated separately, as the server section below shows. The longer template and a table of what each reply means is in the email template and reply guide.

What have cPanel hosts said? (checked 24 October 2026)

This table records each host's own statement and dates it. A host statement is not proof for your account. Statements are the hosts' own and were not independently verified.

HostWhat its page saidDate and time on the pageYour move
HostingercPanel servers updated to build 138.18 with the latest Alt-PHP; PHP upgrades complete on managed servers; some sites show 8.5.11 because the fix was added to the existing version. Its test is a PHP Info Build Date of 21 October 2026 or later22 October 03:34 and 06:44 UTCNo action stated for web, agency and cPanel plans. Confirm if you are on a VPS
NamecheapShared servers all received fixes. The first CloudLinux patches did not change version numbers, so some looked unpatched; corrected packages were installedMaintenance reported finished 22 October 12:50 PM, final update 22 October 7:00 PM (time zone not stated on the page)Shared: no action requested. VPS and dedicated: update PHP yourself
BluehostMost platforms up to date, remaining infrastructure still being patched. No list of remaining systems23 October 12:35 (latest entry)Ask whether your server is among the remaining ones
GoDaddyWeb Hosting patched for all PHP versions; fix shipped under the same version numbers, so check the build date. GoDaddy does not say it has patched VPS plans22 October 13:30 UTCWeb Hosting: confirm the build. VPS: patch it yourself

For hosts not in this table, see the shared-hosting page. A host with no dated statement is Unknown, which does not mean unpatched.

How does a server owner update every PHP on cPanel?

This section is for people with root on a cPanel server. Take a backup or snapshot first.

Which PHP packages can a cPanel server have?

A server can carry four kinds of PHP, and each updates on its own path.

PHP on the serverUpdated bycPanel or vendor record
ea-php74 to ea-php85 (EasyApache 4)EasyApache package updateEA4 25.91, 21 October 2026
cpanel-php (PHP for cPanel's own interfaces)cPanel and WHM updateBuild 138.0.18, 21 October 2026
alt-php (CloudLinux PHP Selector)CloudLinux package updateCloudLinux, updated 23 October 2026
System PHP from the OSDistribution package updateThe distribution's advisory

Updating one does nothing for the others. A server where every ea-php package is fixed can still serve an account from an old alt-php build.

What did cPanel change in each ea-php package?

PackageChange in EasyApache 4 (21 October 2026)Number after update
ea-php85Updated from 8.5.11 to 8.5.128.5.12
ea-php84Updated from 8.4.26 to 8.4.278.4.27
ea-php83Updated from 8.3.35 to 8.3.368.3.36
ea-php82Updated from 8.2.34 to 8.2.358.2.35
ea-php81, ea-php80, ea-php74Fix backported, end of life branchesOld number kept

On the backported branches the meta packages were rebuilt the same day so their change logs name both CVEs. CloudLinux's own ea-php builds are a separate case. Its early fixed builds, such as ea-php84 8.4.26-2, kept lower numbers, and builds carrying php.net numbers followed on 23 October. A scanner reading the number can flag a patched server for that reason.

How do I install the updates and restart the workers?

In WHM, EasyApache 4 links to the System Update page that installs package updates, as the EasyApache documentation describes. From a shell, CloudLinux gives these commands:

dnf clean all && dnf upgrade "ea-php*"
dnf clean all && dnf upgrade "alt-php*"
/scripts/restartsrv_httpd
/scripts/restartsrv_apache_php_fpm

Use yum on CloudLinux 7. CloudLinux notes that its security advisory metadata was not published yet at its 23 October update, so security-only update filters do not list these packages. Run the plain update. If an update stalls, update cloudlinux-release first, as its post describes.

cPanel documents the PHP-FPM restart target as /usr/local/cpanel/scripts/restartsrv apache_php_fpm. On LiteSpeed, WHM's MultiPHP Manager cannot edit settings and the handler is lsphp, so restart LiteSpeed through its own control.

To see every domain's assignment, open WHM MultiPHP Manager and its User Domain Settings tab.

How do I confirm the fix is installed and running?

  • Package fixed. Run rpm -q --changelog ea-php84-php-cli | grep -E 'CVE-2026-(109618|109619)', once per branch you run. CloudLinux gives the same check for alt-php, with alt-php85-common.
  • Workers restarted. The Apache and PHP-FPM start times (see how to prove a restart ran) must be later than the package install time (rpm -q --last shows the install time).
  • Each domain on a fixed branch. Read the assignment in MultiPHP Manager, and for CloudLinux accounts read the Selector setting too.
  • Record it. Keep the changelog output and the start times with the date.

CloudLinux warns that the native PHP packages for some streams do not list CVE ids in their changelogs. For those it says to check that the version is 8.2.35 or 8.3.36 or later.

Does a firewall rule or setting replace the update?

No. CloudLinux said at its 23 October update that no Imunify360 rule blocked the out-of-memory path of CVE-2026-109618 yet, and PHP says updating is the only complete fix. PHP's interim settings are memory_limit=-1 set so no pool restores a limit, a low post_max_size, and session.upload_progress.enabled=0 for CVE-2026-109619, followed by a restart of every worker. PHP lists these as no substitute for updating.

Set that last option in php.ini, the pool or server configuration. PHP says not to rely on ini_set() or .user.ini, which is why an account-level change on shared hosting is the wrong lever.

PHP's 23 October informational advisory adds a third identifier, CVE-2026-115560, tied to session upload progress under an unusual session handler setup. PHP says it will publish a full advisory with the next regular release and recommends the same session.upload_progress.enabled=0 setting. Hostinger's page mentions it on 23 October at 12:53 UTC. No new PHP version had been announced at our check on 24 October 2026.

Am I affected? A three-state self-test

Where you stand on cPanel right now

A check from outside can read headers and version hints. It cannot see which package serves each domain, your host's backport, or when the workers last started.

  1. Detected Your site serves PHP and the version it shows is below the fixed release for its branch. Ask the host the question above today, or update and restart if you run the server.
  2. Unknown The version is hidden, shows only a branch such as 8.3, or the host has said nothing specific. This is the common case on cPanel. Get the package identifier and the restart time.
  3. Confirmed by owner evidence You hold a changelog or host reply naming both CVEs for the package serving your domain, and a restart after the install. The runtime is patched. Whether anything got in earlier is a separate question.

No scan, ours included, moves you from "unknown" to "confirmed".

Five steps from a fixed PHP package to confirmation on a cPanel server, and who can see each one 1. Package fixed upstream 2. Installed on this server 3. Workers restarted 4. Your domain uses that PHP 5. Confirmed in writing cPanel change log records step 1 Host or root: steps 2 and 3 MultiPHP Manager or Select PHP Version: step 4 (the branch only)
Each step has a different witness. A cPanel version picker only shows step 4, and only as a branch number.

What if my PHP is end of life, and did anything get in first?

cPanel and CloudLinux backports cover the old branches for now, and the PHP project's notice says 8.1 and older receive no project updates. Treat a backport as a bridge. PHP 8.2 security support ends on 31 December 2026 on its supported versions page, so plan the move to 8.4 or 8.5. What changes on PHP 8.1 and older is on its own page.

Patching removes the hole and leaves anything planted earlier. AWS reported honeypot attempts from 17 October, and says it is unclear whether the early ones would have worked on real systems. If your server was unpatched and reachable, look for PHP files you did not upload, cron entries you did not create and unknown admin accounts, and follow the 10-minute response. If you run Plesk instead, checking the PHP handler per domain works differently. The runtime patch guide covers the other platforms, and who handles patching on each hosting type explains the shared versus server split.

The free scan reads the stack your site serves and matches each version to known vulnerabilities. It is a lookup, and it cannot see a backport or a restart.

Questions people ask

How do I update PHP in cPanel to fix PHP2Shell?

On shared hosting you cannot. The fixed PHP package is installed on the server by your host, and the cPanel version picker only chooses among the versions the host installed. Ask the host for the fixed build for your domain and a worker restart time. On a server you run yourself, update the EasyApache ea-php packages in WHM or with the package manager, then restart Apache and PHP-FPM.

cPanel MultiPHP Manager shows 8.3. Is that the fixed version?

It shows the branch, not the build. A server on 8.3.35 and one on 8.3.36 both show 8.3. Some cPanel and CloudLinux packages carry the fix and keep an older number. Ask the host for the package or build identifier and the date and time the workers were restarted.

I switched my domain to PHP 8.4 in cPanel. Am I patched now?

Only if the 8.4 package installed on that server contains the fix and its workers were restarted after it was installed. Switching the version moves your domain to a different installed package. It does not install anything. Treat your state as unknown until the host confirms the build.

My domain is on PHP 7.4, 8.0 or 8.1 in cPanel. Am I covered?

cPanel backported the fix into ea-php74, ea-php80 and ea-php81 on 21 October 2026, and those branches stay end of life. Whether your server installed that update is up to the host. Move the site to 8.4 or 8.5 once it has been tested, because the old branches get no further fixes.

I am on shared hosting and my host says nothing. What can I do?

Send the host the exact question in this article and keep the reply. Check which PHP version each of your domains is set to, including addon domains, and note any you pinned by hand. Until you hold a patched build and a restart time in writing, your state is unknown.

Can I turn off upload progress myself in cPanel as a workaround?

PHP says to set session.upload_progress.enabled=0 in php.ini, the PHP-FPM pool or server configuration and to restart every worker. It says not to rely on ini_set() or per-directory .user.ini files. On shared hosting only your host can make that change, so ask for it if the patch is not yet installed.

Sources

  1. PHP security notice, 21 October 2026 and update of 23 October (php.net)Both CVEs, fixed releases, scope, interim settings, source backports for 7.4, 8.0 and 8.1. Checked 24 October 2026.
  2. GHSA-w8hw-w9fx-j79w: CVE-2026-109618 (php/php-src advisory)
  3. GHSA-6wmf-4rv5-p3rp: CVE-2026-109619 (php/php-src advisory)
  4. cPanel: EasyApache 4 Change Log 25cPanel's own record of the ea-php fixes in 25.91 and 25.92 (21 October 2026). Page last modified 22 October 2026; checked 24 October 2026.
  5. cPanel: 138 Change LogBuild 138.0.18, 21 October 2026, updates cPanel's own cpanel-php84 to 8.4.27.
  6. cPanel: MultiPHP Manager for WHMSystem default versus per-domain settings; LiteSpeed restriction. Documentation last modified 8 July 2026.
  7. cPanel: MultiPHP Manager for cPanelWhat an account holder sees and can change. Documentation last modified 8 July 2026.
  8. cPanel: About EasyApache 4
  9. cPanel: EasyApache 4 interfaceHow to run the system update that installs EasyApache package updates.
  10. cPanel: PHP-FPM code and filesystem layout for EasyApache 4Documents the apache_php_fpm restart target.
  11. CloudLinux: fixed ea-php and alt-php packages (blog, updated 23 October 2026)Vendor page. Package availability is not the same as installed on your server.
  12. Hostinger status page: PHP security update for Web, Agency and cPanel hostingHost statement about its own service. Checked 24 October 2026.
  13. Namecheap status update, 21 October 2026Host statement about its own service. Checked 24 October 2026.
  14. Bluehost status announcement 271Host statement about its own service. Latest entry 23 October 12:35 (as listed on the page).
  15. GoDaddy: important PHP security update, what website owners need to doHost statement about its own service, with updates through 22 October 2026.
  16. Namecheap: how to change PHP version on shared serversShows Select PHP Version as the PHP Selector tool on a cPanel host.
  17. Bluehost: MultiPHP Manager
  18. Amazon Threat Intelligence: PHP2Shell exploitation attempts seen in MadPot honeypots before disclosure (AWS Security Blog)Vendor telemetry. AWS says it is unclear whether the early attempts would have succeeded on real systems.
  19. CISA Known Exploited Vulnerabilities catalog (JSON feed)Neither CVE was in the feed version 2026.10.23, released 23 October 2026 17:00 UTC. Re-check before relying on this.
  20. PHP supported versions (php.net)PHP 8.2 security support ends 31 December 2026. Checked 24 October 2026.

Facts on this page are dated and point at the primary source next to them. If a vendor status changes after the date shown, the vendor's page wins; tell us at support@run.cloud and we will update it.