Critical RCE Flaws Fixed in PHP Across All Supported Branches; Immediate Patching Urged
Two Critical Flaws Allow Unauthenticated Code Execution
The PHP security team has released patched versions across all active release branches—PHP 8.5.12, 8.4.27, 8.3.36, and 8.2.35—to address two critical vulnerabilities that allow unauthenticated remote code execution (RCE). The vulnerabilities affect all installations serving web requests, including PHP-FPM, Apache mod_php, php-cgi, FrankenPHP, and LiteSpeed.
The team noted the highest risk exists for Apache with mod_php, where demonstrated exploits trigger before application-level code executes.
- CVE-2026-109618 (GHSA-w8hw-w9fx-j79w): Out-of-memory handling can interrupt internal request initialization, causing subsequent cleanup routines to treat corrupted state as valid.
- CVE-2026-109619 (GHSA-6wmf-4rv5-p3rp): Request-owned internal state can persist across worker cycles after memory is freed, allowing subsequent requests on the same worker to access stale pointers.
Upgrade Actions and Temporary Mitigations
Administrators should immediately deploy PHP 8.5.12, 8.4.27, 8.3.36, or 8.2.35. Due to the severity, official minimal source-backports have also been made available for legacy releases (PHP 7.4, 8.0, and 8.1). System operators using third-party repositories like rpms.remirepo.net are advised to switch to distribution vendor packages or compile directly from source, as repository updates may be delayed.
For systems unable to update immediately, partial mitigations include:
- Mitigating CVE-2026-109618: Set
memory_limit = -1via non-overridable server configurations (php_admin_value) and restrictpost_max_sizeto 8M (or 32M when file uploads are required). - Mitigating CVE-2026-109619: Set
session.upload_progress.enabled = 0prior to request parsing, setfatal_error_backtraces = 0on PHP 8.5, and restart all worker processes.