On October 21, the PHP project shipped emergency releases (8.5.12, 8.4.27, 8.3.36 and 8.2.35) to fix CVE-2026-109618 and CVE-2026-109619, two flaws rated 9.2 that allow unauthenticated remote code execution. The bugs sit in PHP itself, not in a plugin, and PHP warns that all web deployments are affected, including Apache modules, PHP-FPM, php-cgi, FrankenPHP and LiteSpeed. Researchers used AI tools to find and validate the flaws. Amazon’s honeypots logged exploitation attempts on October 17, four days before the fix; dozens of companies and government services took websites offline while they patched, and Cloudflare recorded millions of attack attempts. Branches 8.1 and older are end-of-life and received only minimal source backports. Exploitation is rated high complexity, which buys some time, but not much.
WHAT TO DO
- Inventory every PHP runtime that serves web requests, including containers, appliances and applications that bundle their own interpreter.
- Patch to 8.5.12, 8.4.27, 8.3.36 or 8.2.35, and check vendor advisories where packages backport fixes without changing the version number.
- Set a retirement date for any site on PHP 8.1 or older and shield those sites behind a web application firewall until then.
- Turn off session upload progress (session.upload_progress.enabled=0) to block a separate, unpatched path PHP disclosed on October 23 (CVE-2026-115560).
- Watch PHP servers for memory-exhaustion errors, suspicious form submissions and unexpected shell processes.
Sources: Datadog Security Labs, Nick Frichette, Emile Spir and Eslam Salem, “PHP2Shell – Critical vulnerabilities in PHP (CVE-2026-109618, CVE-2026-109619),” October 21, 2026 (updated October 23); Kaspersky, “Critical PHP vulnerabilities put millions of websites worldwide at risk,” updated October 23, 2026