Cyberkern
PHP security

PHP2Shell: Fixed versions and hosting checklist

Updating WordPress does not necessarily update PHP. Check the security releases, the additional 23 October warning and the evidence your hosting provider should supply.

Editorial: CyberkernSources checked: Published:

What happened with PHP2Shell?

On 21 October 2026, PHP released security updates for CVE-2026-109618 and CVE-2026-109619. Under the relevant conditions, both can allow remote code execution without authentication. Each has a CVSS v4.0 score of 9.2. This describes technical severity, not the probability that a particular business has already been attacked.

The PHP Foundation describes delays in fixing the memory issue and problems with coordinated disclosure. Early disclosures brought the release forward by one day. The immediate question for operators is which running systems have actually received the fix. [1] [3] [4]

Which PHP versions contain the fixes?

The table lists the first corrected upstream releases for the two vulnerabilities disclosed on 21 October. It does not give an all-clear for the additional CVE-2026-115560 announced on 23 October. Check subsequent vendor advisories as well.

Linux distributions and managed hosting packages may carry a backported fix under an older PHP version number. In that case, use the full package version and the vendor's security bulletin. PHP 8.1 and older branches no longer receive regular PHP project updates; vendor backports or the available minimal source patches need separate verification. They do not replace a planned move to a supported branch. [1] [4]

Swipe or scroll sideways to read the table.

First PHP releases fixing CVE-2026-109618 and CVE-2026-109619
PHP branchCorrected releaseEvidence required
8.28.2.35Active web package or documented vendor backport
8.38.3.36Active web package or documented vendor backport
8.48.4.27Active web package or documented vendor backport
8.58.5.12Active web package or documented vendor backport

Check the additional 23 October session advisory

PHP recommends temporarily setting session.upload_progress.enabled=0 until the next regular bugfix release. The notice concerns CVE-2026-115560 and an unusual combination of configuration and application code. Treat it separately from the two vulnerabilities already patched.

The stated condition is specific: session.serialize_handler starts as php_binary or php_serialize. The application changes it to php at runtime using ini_set(), before calling session_start(), while session upload progress remains enabled. PHP says applications that never change the handler at runtime can leave the feature enabled.

Ask the administrator to verify the effective setting. Precautionary disabling must take effect in server or PHP configuration before request parsing; restart affected workers. A later ini_set() in application code is not a substitute. Keep the setting if already applied. The notice does not yet name a date or new versions for the regular fix. This assessment was checked on 24 October 2026. [1] [2]

Why updating WordPress alone is not enough

The CMS and its PHP runtime are separate components. An updated WordPress, Drupal or Joomla installation does not establish that the web server is running corrected PHP. A website loading normally does not establish its patch status either.

Include shops, customer portals, subdomains and older installations alongside the main website. Identify the actual web execution path for each system. PHP-FPM is not automatically exempt; PHP also names mod_php, CGI, FrankenPHP and LiteSpeed. The command line may use a different PHP installation from the web server. Do not publish an openly accessible phpinfo() page to investigate. [1] [5]

Further reading: Why known vulnerabilities remain open despite available updates

Close the update with evidence from the running system
  1. Identify the system

    Record the domain, application, hosting owner and PHP runtime actually serving requests.

  2. Activate the fix

    Install the appropriate package, replace affected workers and check session configuration separately.

  3. Verify operation

    Record the active package, functional checks and timestamp. Leave unresolved systems open.

A verifiable outcome, not just an update ticket

Each system needs an owner, a vendor reference and a check of its running instance. A command-line version string alone is insufficient.

Original schematic. These checks document operational state; they do not establish that a system was never compromised.

What to ask your hosting provider

A general answer such as “our servers are up to date” leaves important questions unresolved. Request confirmation for your particular systems. You can use this wording:

Please confirm the PHP web runtime and package version used for our website, the fix status for CVE-2026-109618 and CVE-2026-109619, and how the PHP advisory of 23 October 2026 concerning CVE-2026-115560 has been addressed. Please include the activation time and the relevant vendor or distribution advisory.

Swipe or scroll sideways to read the table.

An original checklist for a verifiable hosting response
QuestionEvidence neededUnresolved if …
Which systems?Domains and their web runtimesonly the main website is listed
Which fix?Package version and vendor advisory for both CVEsthe answer only says “PHP 8” or mentions a CMS update
Already active?Activation time and confirmation workers were replacedthe package is merely available to install
Session advisory checked?Effective setting or a documented reason it does not applythe answer only cites the 21 October update
Application still works?Checks of login, forms, uploads and relevant jobsonly the homepage has been opened

What WAF alerts and attack attempts actually show

A web application firewall may provide additional protection against particular attack paths. It does not replace a PHP update or verification of effective configuration. If an update is not immediately possible, agree limiting measures or temporary isolation with the responsible administrator; follow the complete vendor guidance.

AWS documented attempts in its MadPot telemetry before public disclosure. AWS also states that it is unclear whether those attempts would have succeeded on real systems. Attempt counts therefore do not count compromised businesses. Equally, a quiet dashboard does not prove an instance was untouched. [1] [5] [6]

When the work is ready to close

For each system, record the owner, active package, vendor reference, activation time and functional test result. Keep patch verification separate from incident investigation: a system patched today does not explain what happened before the update.

If file changes, unexpected processes or suspicious access suggest compromise, preserve available logs and involve the responsible incident-response team. An external security assessment can examine visible systems and anomalies; it cannot conclusively confirm internal package state or compromise without additional evidence.

  • Relevant PHP web systems and responsible owners recorded.
  • Fixes for both original CVEs verified in the running instance.
  • The 23 October session advisory checked and documented separately.
  • Business-critical functions checked after the change.
  • Unresolved systems assigned a next action and deadline.
  • Suspected incidents investigated separately; patching not treated as a forensic all-clear.

Sources

  1. PHP · Critical remote code execution vulnerabilities (21 October 2026)
  2. PHP · Session upload progress advisory (23 October 2026)
  3. PHP Foundation · Security release and disclosure background (21 October 2026)
  4. NHS England · Critical Vulnerabilities in PHP, CC-4875 (21 October 2026)
  5. NCSC · Critical security issue affecting PHP (21 October 2026)
  6. AWS · PHP2Shell attempts observed in MadPot (21 October 2026)
Related assessment

Security Assessment

Explore the service scope

Contact

Please do not send credentials or confidential information.

* Required field