What happened. On October 21 the PHP project shipped emergency releases for two unauthenticated remote code execution bugs, CVE-2026-109618 and CVE-2026-109619, both rated CVSS 9.2. The fixed versions are PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 (Help Net Security). Palo Alto Networks counted more than 22.6 million potentially exposed instances (TechTarget). Exposure is not confirmed compromise.
Mechanism. The first bug (-109618) is an out-of-memory handling flaw: PHP can be interrupted while request data is only partly initialized, and request cleanup then treats that invalid data as valid. The second (-109619) leaves request-owned state pointing at freed memory, which a later request handled by the same worker can use before it is reset. A single unauthenticated request can trigger it before application code runs. All SAPIs are affected (PHP-FPM, mod_php, php-cgi, FrankenPHP, LiteSpeed); the PHP Foundation rates mod_php highest risk, and releases back to 5.4 are affected.
Timeline and what is unknown. Amazon's MadPot honeypot recorded an exploitation attempt on October 17, four days before disclosure; how the attacker got details is unknown. A report cited by one outlet says exploit code appeared in an anonymous Hacker News post on October 20, which I could not verify. Other coverage does not confirm mass exploitation. On X, one researcher posted this morning that they reproduced the exploit "fully-http" against a default PHP 8.3.35 setup in 25 minutes, with no build offsets supplied (unverified social-media claim, no code seen). If true, public exploit code is a day away at most. There are no published indicators of compromise, so detection means behavioral hunting. Palo Alto says all PAN-OS and Panorama versions are affected with no fixed release yet; Fortinet and Cisco are still checking products.
Assessment. The Reddit title promised "vulnerable after installing patches." The coverage I could open supports a narrower and more useful claim: patching closes the hole but removes nothing an attacker planted before. Treat any internet-facing PHP host that ran an unpatched version since October 17 as a potential incident, not a version-bump ticket. Cloudflare shipped WAF rules early, including for free plans, and commenters credit that for protecting unpatched sites. Cloudflare itself says request data alone does not always separate exploit from legitimate traffic, so a WAF is a stopgap.