Executive Summary
Facts Only
* CVE-2026-109618 affects PHP versions earlier than 8.2.35, 8.3.36, 8.4.27, and 8.5.12.
* The vulnerabilities were disclosed on October 21, 2026.
* CVE-2026-109618 relates to a partial hash table insertion flaw during HTTP request-variable parsing.
* CVE-2026-109619 relates to persistent serialization-context use-after-free and session-global use-after-free flaws within PHP's handling of serialization context and session upload-progress.
* PHP workers handle multiple requests sequentially, and memory left from one request can affect subsequent ones if the same worker is reused.
* Exploitation requires knowing specific versions of Docker containers, packages, and other application elements.
* A POC exploit was reproduced achieving RCE with privileges of `modphp` or `PHP-FPM` workers.
* The vulnerabilities are relevant to deployments using `modphp` or PHP-FPM.
* Mitigation recommendations include patching to the latest version, rebuilding container images, disabling session upload progress, and limiting request body sizes via a WAF or proxy.
Full Take
The existence of these vulnerabilities highlights a fundamental tension between software evolution and the persistence of exploited state in long-running processes. The core issue lies not just in the memory corruption bugs themselves, but in the operational reality of how PHP workers maintain state across requests. This structure means that an exploit chain does not require a single perfect bug; instead, it requires an attacker to induce a specific sequence of operations that interacts with memory allocated and released by previous, unrelated transactions handled by the same worker. This shifts the attack surface from finding an immediate RCE mechanism to orchestrating state leakage across request boundaries.
The observation that threat actors favor proven, simpler exploits over developing complex, version-specific ones suggests a pattern where operational friction—the cost of environment calibration and dependency management—acts as a significant barrier to opportunistic exploitation. However, the rapid integration of AI-assisted research suggests this inertia is rapidly eroding. The implication for defense is dual: organizations must focus on patching high-risk versions while simultaneously enforcing process isolation through stricter privilege separation and rigorous configuration hardening, such as disabling features like session upload progress, which directly mitigates the state leakage vectors identified.
What does this pattern suggest about systemic security? It points to a vulnerability in runtime execution environments where internal object management and request lifecycle handling inadvertently create exploitable cross-request state vulnerabilities under high load or error conditions. The cost of exploiting these flaws is concentrated on those who can precisely map deployment specifics, forcing defenders into a reactive posture based on rapid patching cycles rather than prophylactic design. How do we institutionalize the principle that system invariants (like memory state consistency) must be verifiable and isolated at every point of execution, rather than relying solely on version-specific fixes?
From the original · CrowdStrike Blog
To exploit these vulnerabilities, attackers must adapt the POC exploit for the specific PHP version and application (e.g., WordPress). This adaptation presents a meaningful barrier to would-be threat actors, as it requires the exploit developer to know and use the same versions of Docker containers, packages, and other elements used by targeted applications.Read the full story at crowdstrike.com
