php2shell.io
PHP2Shell / security response3 CVE guides · Index updated 2026-10-24Reviewed 2026-10-24
23 October follow-up

CVE-2026-115560

Session upload-progress serializer mismatch

A separate session upload-progress issue can create an RCE path when the configured session serializer is changed at runtime. It is not covered by the original PHP2Shell fixes.

PHP severityPendingPHP has not published a CVSS score
Response statusMitigate nowMitigation advised · full advisory pending
Disclosure / source check2026-10-23Sources checked 2026-10-24

What happens inside PHP

Upload-progress tracking uses session serialization before application handling. Changing the serializer for a later read can interpret that stored data differently. A source-reviewed community repository supplies an object-injection lab with a deliberately added gadget; reproduction is reported by its author.

The PHP notice describes an unusual configuration-and-code combination. Applications that never change the serializer at runtime do not meet that described path. The public lab’s command-execution gadget is not evidence that every application has an equivalent chain.

Check the prerequisites

All three conditions below are required for the path described in PHP’s 23 October notice.

  • The configured session.serialize_handler is php_binary or php_serialize.
  • Application code uses ini_set() to switch the handler to php before session_start().
  • session.upload_progress.enabled remains enabled.

Affected versions & patch status

PHP’s 23 October notice does not give a complete affected-version range or a fixed release. The original PHP2Shell release numbers must not be used as a clearance test for this separate issue.

No fixed-version or PHP CVSS matrix yet

As of this source check, PHP has announced a regular-cycle follow-up but has not published the full advisory. This page does not inherit the original pair’s 9.2 score or release baselines.

Respond to this CVE

  • The reviewed PHP notice schedules the fix and full advisory for the next regular release. No fixed release is identified in that notice as of 24 October.
  • Keep the original PHP2Shell patches installed. They address CVE-2026-109618 and CVE-2026-109619, not this separate condition.

Apply the PHP-recommended mitigation

  • PHP recommends disabling session upload progress while awaiting the regular fix. Keep it disabled if already applied.
  • Apply the setting in the web runtime configuration before request parsing, then replace or restart every affected worker. Do not rely on application ini_set() for this directive.
  • This setting addresses the stated session-progress path for CVE-2026-115560. It remains only a partial control for the original PHP2Shell memory-corruption issues.
PHP configuration / CVE-2026-115560 mitigation
; Apply in php.ini or the serving SAPI configuration.
; Restart or replace all PHP workers afterward.
session.upload_progress.enabled = 0

Patch guide → · Runtime and infrastructure controls →

Verify on your own systems

  • Read the effective web-runtime serializer and upload-progress settings; CLI configuration alone is insufficient.
  • Review application and dependency code for runtime changes to session.serialize_handler before session_start(). A text search locates candidates; it cannot prove execution order or absence of dynamic changes.
  • Check all three prerequisites together. The published scenario does not require an application-facing upload form; inspect what the PHP runtime actually parses.
  • Confirm the disabled setting on every serving instance. Follow PHP’s next advisory for the eventual fixed-version matrix.

Local Linux inventory helper · Private web-runtime verification

Monitoring ideas

  • Investigate unexpected concurrent upload/session traffic and session-decode warnings in the same application context.
  • A session decoding warning can also have benign causes. Pair it with the runtime settings, application code, request logs and host evidence.

Open the detection and monitoring guide →

PoCs & related research

These links are source-reviewed examples and related research. No exploit was executed for this site. Read each repository’s prerequisites and limitations before using an isolated lab.

Lab for the separate CVE-2026-115560 serializer mismatch, with a deliberate runtime handler switch and synthetic destructor gadget. Includes upload-progress-disabled and no-switch controls on PHP 8.4.27 Apache.

Source inspected; not executed. The gadget and writable result directory are supplied by this lab. Its check subcommand reads the lab's info.php and checks server configuration; it cannot verify an application's runtime switch or establish exploitability. The image is version-tagged, not digest-pinned.

Pinned source links & review notes →

Primary sources & provenance

Source snapshot: 2026-10-24. Documentary review only; no exploit or infrastructure validation performed. Structured CVE data · All references.