The PHP project issued emergency patches on 21 October for two critical vulnerabilities in the core of the language, identified as CVE-2026-109618 and CVE-2026-109619 and jointly called PHP2Shell. Both flaws received a CVSS 4.0 score of 9.2 and permit remote code execution without any authentication.
CVE-2026-109618 lies in memory-handling code. Use of longjmp can leave request data only partially initialized, after which shutdown routines operate on invalid structures. A multipart request containing numerous headers or an empty file field is sufficient to trigger the condition.
CVE-2026-109619 affects stale global state inside long-lived workers that continue to reference memory already freed. Confirmed exploitation paths involve fatal errors, error-report data, and session-upload progress tracking.
Researchers validated unauthenticated remote code execution over HTTP against the first vulnerability on Apache with mod_php under default configuration limits. On PHP-FPM the issue was confirmed through static analysis, although no public exploit has been demonstrated. Exposure to the second flaw depends on specific configuration settings and loaded extensions.
The FBI Cyber Division published an alert on 21 October directing administrators to apply updates immediately or take affected systems offline if patching is not feasible. The advisory recommends inventorying all PHP deployments, with priority given to internet-facing instances and embedded products.
Affected versions are those prior to 8.2.35, 8.3.36, 8.4.27, and 8.5.12. PHP 8.1 and earlier branches receive no further support from the project. Cloudflare deployed WAF rules across all plans; its CTO Dane Knecht stated that the company had already observed initial exploitation attempts.
Complete mitigation requires updating PHP and restarting all workers while verifying every pool and exposed service, because updating only the command-line package may leave PHP-FPM or the Apache module untouched. As a temporary workaround the project recommends limiting request and multipart body sizes at the frontend and, on PHP 8.5, disabling fatal_error_backtraces together with session upload progress.


