What happened

On October 21, 2026, the PHP project shipped 8.5.12, 8.4.27, 8.3.36, and 8.2.35. The advisory says the two bugs can allow unauthenticated remote code execution on PHP that serves web requests, including PHP-FPM, Apache with mod_php, php-cgi, FrankenPHP, and LiteSpeed. PHP says the risk is highest on mod_php, where a request can trigger the attack before any application code runs. CVE-2026-109618 is an out-of-memory failure that can leave request data only partly initialized, so later cleanup treats that data as valid. CVE-2026-109619 is state from one request that can still be used by a later request on the same worker after its memory has been freed. Google Cloud lists every version from 5.4 through 8.5.11 as vulnerable, and both flaws at CVSS 9.2. PHP 8.1 and older are outside the project's normal updates. The security team published minimal source backports for 7.4, 8.0, and 8.1. PHP says temporary configuration changes reduce some paths and do not make an installation safe.

Why it matters

The bug is not in WordPress or Drupal. It is in PHP, so a site whose own code is careful is still exposed if the interpreter is old. Wiz demonstrated code execution against current WordPress, Drupal, and Joomla images, and says a program that only prints a line can be enough, because the failure happens while PHP is still starting the request. The other half of the story is how the exploit became practical. The PHP Foundation says a 2024 audit saw the out-of-memory problem and did not find a concrete path to code execution. In 2026, Calif, OpenAI, and Wiz did. Wiz says Gemini 4 Argon, GPT-5.6 Sol, and its own Atlas system were used to find the bug, build the exploit, write detection, and check the patch, and that one researcher finished in a week a job that used to take a team months. That claim is Wiz's. The consequence it points at is not. A memory bug that was too tangled to weaponize is no longer protected by that tangle, for the people who report it or for the people who copy the result.

The PHP Foundation's timeline is more than one lab. A 2024 Quarkslab audit, funded through the Sovereign Tech Agency, surfaced the out-of-memory problem while another fix was in progress. No remote path was shown then, and the security team stalled for months on a fix that risked compatibility, a new denial of service, or changes across third-party extensions. Calif's audit started July 30, 2026. On August 11, Ryan A at Calif reported remote code execution with that same root cause. OpenAI reported the same root cause on its own, then more paths on September 18. Wiz reported on August 24. From August 11 the Foundation treated the fix as the top security job.

Wiz's account of the models is specific. The first issue in its timeline was found on August 19 with Wiz Atlas, Gemini 4 Argon, and GPT-5.6 Sol. Unauthenticated code execution was then shown on Drupal on August 20 and on WordPress on August 21. Wiz says Argon contributed to finding the bug, developing the exploit, detecting the attack, and checking the patch. Google Cloud's note says the same about Argon. Wiz also says the practical change is adaptation: a working chain still has to be refit to each PHP version, configuration, and memory layout, and a model with a test loop can do that refit. That is the emerging threat in the post. Complexity stopped being a reliable delay.

The disclosure did not stay inside the embargo. The Foundation says that on October 20, around 15:00 UTC, the two CVE identifiers were already circulating, with a wrong release time and a wrong score of 10.0. The real score is 9.2. No technical write-up had leaked. PHP moved its pre-announcement to 19:30 UTC that day and moved the release from October 22 at 14:00 UTC to October 21 at 14:00 UTC, because distributors were still packaging the fix. A Calif video of a proof of concept then went out by mistake and copies spread. At 07:41 UTC on October 21, more than six hours before the coordinated release, Chainguard published images that contained the fix. The Foundation says that let someone study the patch in binary form while everyone else was still waiting. At the moment of release, the PHP security team said it had not yet identified a functional public exploit.

Datadog says it reproduced both bugs and confirmed that application login cannot sit in front of them, because PHP handles the request before the application runs. Datadog also says AWS reported exploitation attempts in the wild as early as October 17, four days before the public advisory. That sentence is Datadog's account of AWS. It is not a figure this page remeasured. Datadog agrees with PHP that the upload-progress setting is not a full defense against the two critical bugs.