Skip to content

Image: static-www.elastic.co · rights & removal

Executive Summary

Two critical, unauthenticated Remote Code Execution (RCE) vulnerabilities in PHP core, designated CVE-2026-109618 and CVE-2026-109619, were disclosed after initial leakage on October 20, 2026. These flaws stem from memory-safety bugs: OOM corruption (CVE-2026-109618) and stale global state (CVE-2026-109619). The PHP security team released patched versions on October 21, 2026. Since a complete public proof-of-concept was not available, detection efforts focused on the convergent post-exploitation behavior—a web server process spawning unintended shells or executing unusual child processes. Defensive strategies rely heavily on monitoring this predictable chain of events rather than trying to detect the zero-day trigger itself.

Facts Only

Vulnerabilities are CVE-2026-109618 and CVE-2026-109619, classified as critical PHP core RCE flaws with a CVSS v4.0 score of 9.2. Details leaked on October 20, 2026, prior to coordinated disclosure. The PHP security team issued an emergency release on October 21, 2026, providing patched versions (PHP 8.5.12, 8.4.27, 8.3.36, and 8.2.35). CVE-2026-109618 involves RCE via out-of-memory (OOM) corruption; CVE-2026-109619 involves RCE via stale global state. Patches cover web request handling across PHP-FPM, Apache with modphp, php-cgi, FrankenPHP, and LiteSpeed. Detection strategies focus on process execution of suspicious commands (e.g., bash spawning -c) originating from web server parents like apache2 or nginx. Mitigation options mentioned include setting memorylimit=-1 for OOM paths and session.uploadprogress.enabled=0 for stale state paths.

Full Take

The current defensive posture exemplifies a mature paradigm shift in threat modeling: moving detection fidelity from the improbable trigger (the specific exploit string) to the inevitable outcome (post-exploitation behavior). The assumption driving this technical approach is that while entry points vary wildly—be it OOM corruption or stale state—the necessary path to establishing persistence on any modern web stack requires predictable actions: command execution, payload staging, or file modification. This forces defenders to look laterally across process telemetry and file system events.
The core tension here lies between patching speed and operational reality. While the PHP team provided explicit configuration tweaks, they correctly framed them as "temporary exposure reduction," acknowledging that no single toggle constitutes a true fix against complex memory-safety flaws. This places an immense burden on defenders to operate in a state of acknowledged uncertainty, balancing immediate risk mitigation against the ideal state of full patching. The reliance on behavioral signatures—such as monitoring non-interactive processes spawning shells with specific flags—signals a necessary acceptance that threat intelligence is always slightly behind execution reality.
Patterns detected: none

From the original · Elastic Security

2026-109618 and CVE-2026-109619 CVE-2026-109618 and CVE-2026-109619 are critical PHP core RCE flaws that leaked ahead of disclosure. We cover what is verified, why exploitation converges on a web server spawning a shell, and the Elastic detections developed to catch this behavior.
Read the full story at elastic.co
php2shell: Assessing Elastic detection coverage relevant to CVE | Huntaegis