The PHP2Shell story, plainly told
On 21 October 2026 the PHP project patched two linked flaws, CVE-2026-109618 and CVE-2026-109619, which security researchers named PHP2Shell. As publicly reported, a crafted multipart/form-data request makes PHP use a lot of memory while it reads the headers of upload parts. A body well under the default 8 MB limit can hold hundreds of tiny, empty file parts. Corrupted state from that can, according to the reports, lead to remote code execution without logging in.
According to public reports, the official fix ships for PHP 8.2 and newer; older branches get no official patch. PHP 8.1 and older still run a very large share of the web.
What we did and did not verify
Our tests reproduce only the harmless structure of such a flood: how many parts and fields, and how large. We did not reproduce the CVE's session.upload_progress header-parsing path, so we do not claim Howdah blocks CVE-2026-109618 on a stock configuration.
What we measured: PHP's own max_input_vars and max_file_uploads already keep the flood shape we built small on a default box. On a box where an admin has raised those caps, the same shape used 127 to 173 MB, against a 128 MB limit, and Howdah's default limits refuse it long before that. Howdah's value is strongest on raised-cap servers and on old PHP with no official fix. See the coverage table and the measurements.
Why only a PHP extension can stop it
- PHP reads the whole upload into
$_FILESand$_POSTbefore any PHP script runs, so a firewall written in PHP (for example viaauto_prepend_file) is too late. opcache.preloadruns once when the server starts, never per request.- A network firewall sees bytes on the wire, not how PHP will interpret them.
- A compiled extension runs inside PHP's own upload parser, so it can count parts as PHP reads them and stop the request early.
The incident details above come from public reports. We are checking them against the official advisories (GHSA-w8hw-w9fx-j79w, GHSA-6wmf-4rv5-p3rp, php.net) and will correct this page if they differ.