PHP2Shell is spreading fast. Get a FREE PHP2Shell Vulnerability Check!
BlogOctober 23, 20263 min read

PHP2Shell: CVEs, Affected Versions & Fixes | Plainsea

Share this article
PHP2Shell vulnerabilities

PHP2Shell (CVE-2026-109618 & 109619): understand the vulnerabilities, affected PHP versions, exploitation risks, patches, and how to verify remediation.

Published: October 22, 2026 | Last updated: October 23, 2026

Two critical vulnerabilities in the PHP engine, CVE-2026-109618 and CVE-2026-109619, collectively known as PHP2Shell, allow unauthenticated attackers to execute code remotely on vulnerable servers. Both carry a CVSS v4.0 score of 9.2 (Critical).

The flaws sit in core PHP, not in WordPress, Drupal, Joomla or any other application. Every PHP installation that serves web requests is in scope: Apache mod_php, PHP-FPM, php-cgi, LiteSpeed and FrankenPHP. The PHP security team rates mod_php as the highest risk, because an unauthenticated request can trigger the attack before any application code runs. Every PHP branch is affected up to the October 21 fixes, including long end-of-life versions.

This is not theoretical. Amazon's honeypot network recorded an exploitation attempt on October 17, four days before the CVEs were public. Cloudflare reported early attacks on release day, VulnCheck has observed active scanning and at least one web shell attempt, and public proof-of-concept code is circulating.

The vulnerabilities were found by researchers from Calif, OpenAI and Wiz using AI-assisted techniques. The gap between discovery and exploitation is now measured in days, and a quarterly pentest does not fit inside that window.

The PHP security team released fixes on October 21, 2026. Installing them is necessary but not sufficient: teams also need to find every PHP runtime they run, restart the worker processes that keep old code in memory, and retest to confirm the exposure is actually closed.

Key takeaways

  • Two critical vulnerabilities: CVE-2026-109618 and CVE-2026-109619 enable unauthenticated remote code execution or disclosure of process memory.
  • Actively exploited: exploitation attempts predate public disclosure, and proof-of-concept code is public.
  • Every branch affected: fixed releases are PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 (October 21, 2026). PHP 8.1 and older receive no official release.
  • Exposure extends beyond websites: containers, control panels and vendor appliances that bundle their own PHP runtime are affected too.
  • Patching requires verification: confirm the updated runtime is the one actually running in memory, then retest from the outside.
  • Free PHP2Shell pentest by Plainsea: find exposed PHP endpoints and retest after patching to confirm the fix landed.

Understanding the vulnerabilities

PHP2Shell is two memory-safety flaws in how the Zend Engine handles fatal errors (longjmp()) and worker state that persists across requests:

  1. CVE-2026-109618: RCE via out-of-memory corruption (GHSA-w8hw-w9fx-j79w). PHP uses_ longjmp()_ to abort request handling when it runs out of memory. If that happens while internal request structures are only partly initialized, the cleanup routine can treat uninitialized memory as valid pointers. An attacker who can drive the process into memory exhaustion can turn this into pre-authentication code execution.

  2. CVE-2026-109619: RCE via stale global state (GHSA-6wmf-4rv5-p3rp). PHP keeps global variables that briefly point into request-owned memory. Under certain error-handling or upload-tracking conditions, such as _session.upload_progress _or fatal error backtraces, that state survives after the memory behind it is freed. When the same persistent worker handles the next request, it can read the stale memory before initialization resets it, leading to memory disclosure or code execution.

Affected versions and patch matrix

The PHP security team released patched versions on October 21, 2026 at 14:00 UTC. Check your inventory against the matrix below.

BranchSupport statusVulnerableFixed inAction
PHP 8.5Active support8.5.0 – 8.5.118.5.12Update now via official packages, images or source.
PHP 8.4Active support8.4.0 – 8.4.268.4.27Update now via official packages, images or source.
PHP 8.3Security fixes only8.3.0 – 8.3.358.3.36Update now via official packages, images or source.
PHP 8.2Security fixes only (ends Dec 31, 2026)8.2.0 – 8.2.348.2.35Update now, and plan the move to 8.3+ before year end.
PHP 8.1, 8.0, 7.4End of lifeAll releasesSource backport onlyPHP published minimal source backports but no releases. Use your distribution's patched package or upgrade to 8.2+.
PHP 7.3 and olderEnd of lifeAll releasesNoneUpgrade to a supported 8.x branch, or take the system offline.

Note: Linux distributions often backport fixes without changing the version string. A server reporting 8.2.20 on Debian or RHEL may be patched; a server with its version banner stripped will not show up in a version scan at all. Version checks are a starting point, not a verdict.

Get a free PHP2Shell pentest by Plainsea against your internet-facing endpoints. Find what's exposed and prove it's fixed.

A Christmas Carol for Modern Security Teams
PentestingDecember 22, 20255 min read

A Christmas Carol for Modern Security Teams

Follow Ebenezer CISO through visits from the ghosts of pentests past, present and future – and see why annual tests aren’t enough for modern teams that need continuous security.

Read article
PTaaS vs. Traditional Pentesting: What Security Leaders Need to Know
PTaaSDecember 16, 20258 min read

PTaaS vs. Traditional Pentesting: What Security Leaders Need to Know

Traditional pentests give you snapshots of a moving target. Learn how PTaaS lets security teams test more often, fix faster and finally align pentesting with modern release cycles.

Read article
Tis the Season for Attacks How to Avoid a Very Breachy Christmas
CybersecurityDecember 08, 20255 min read

’Tis the Season for… Attacks: How to Avoid a Very Breachy Christmas

Cyberattacks don’t take holidays. Discover why festive-season risk quietly climbs for modern organizations - and how security teams can keep things calm behind the scenes.

Read article