PHP project released PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 to fix two critical unauthenticated remote code execution vulnerabilities (CVE-2026-109618 and CVE-2026-109619). CVE-2026-109618 arises from out-of-memory handling that can interrupt request processing while internal request data is only partially initialized, allowing cleanup to treat invalid data as valid. CVE-2026-109619 involves stale global state where request-owned internal state can persist after its backing memory is freed and be reused by a later request. All web-facing PHP deployments are at risk (PHP-FPM, mod_php, php-cgi, FrankenPHP, LiteSpeed), with mod_php assessed as highest risk due to a demonstrated exploit that can run before application code executes. There are no complete mitigations; updating is the only safe solution.
Immediate actions recommended include updating to the fixed releases (downloads and vendor packages available) and checking vendor-supplied updates; PHP 8.1 and older no longer receive official updates, though minimal source backports were provided to help building fixes for 7.4-8.1. Short-term mitigations (partial and not fully protective) include setting memory_limit=-1 and limiting post_max_size/upload_max_filesize, using container or cgroup availability boundaries (not RLIMIT_AS/RLIMIT_DATA), disabling session.upload_progress, setting fatal_error_backtraces=0 on 8.5, removing per-request diagnostics, and fixing attacker-reachable fatal errors/timeouts. PHP 8.2 reaches end-of-life on 31 December 2026; test-only PHP 8.6.0 RC3 is also available.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.