Emergency PatchingPreemptive DefenseVulnerabiltiy AdvisoryPHP

PHP2Shell: Patch Now, Then Close the Exposure Window

Rémi BlierRémi Blier
PHP2Shell: Patch Now, Then Close the Exposure Window

What happened

On October 21, 2026, the PHP project released emergency fixes for two critical vulnerabilities, CVE-2026-109618 and CVE-2026-109619, now known as PHP2Shell. Both allow remote code execution without authentication. A single crafted request can trigger the flaw before any application code runs, so your CMS, your framework and your login page offer no protection.

Exploitation attempts were reported hours before the patch was even published. Public write-ups and an exploit tool are already circulating.

~70%of websites

whose server-side language is known run on PHP

Why this one is different

Most web vulnerabilities live in a specific plugin or application. PHP2Shell lives in PHP itself, in the code that parses incoming requests. That means:

  • Every PHP setup serving web traffic is in scope, including PHP-FPM, Apache with mod_php and php-cgi.

  • Default configurations are vulnerable.

  • Older versions are the hardest case. For PHP 7.4, 8.0 and 8.1, only source-code backports exist, to compile yourself or get from your distribution. For PHP 7.3 and older, there is no fix at all. Yet a large share of PHP sites still run PHP 7 or older.

~4 in 10PHP websites

still run PHP 7 or older, with no published fixed release

For decision makers: three things to do this week

  1. Ask for an inventory. Which of your public sites, internal tools and vendor appliances run PHP? Appliances and hosted products are often forgotten.

  2. Make patching the priority. This is not a “next maintenance window” issue.

  3. Plan for what can’t be patched quickly. Legacy applications on old PHP versions need a decision: upgrade, isolate or take offline.

For technical teams: patch and mitigate

Fixed versions

Branch

Fixed release

PHP 8.5

8.5.12

PHP 8.4

8.4.27

PHP 8.3

8.3.36

PHP 8.2

8.2.35

PHP 7.4, 8.0, 8.1

Source backports only, check your distribution or vendor

Restart PHP workers after updating so no process keeps running the old code.

If you cannot patch today

⚠

These measures reduce exposure. They do not fix the vulnerability. Patch as soon as possible.

  • Disable session.upload_progress.enabled in php.ini or your PHP-FPM pool.

  • Review memory_limit and post_max_size.

  • On sites that don’t need file uploads, consider refusing multipart/form-data requests at the web server. Test first: this can break upload and checkout forms.

  • For critical systems that stay unpatched, a static maintenance page or taking the server offline remains the safest option.

Where CYBERDEFENSE.AI fits

Let’s be clear: no WAF replaces the patch. PHP2Shell is triggered inside PHP’s own request handling, and the fix belongs there.

What a preemptive defense layer does is reduce the risk between disclosure and remediation, which is exactly when attackers move fastest. CYBERDEFENSE.AI does not wait for a signature to be written. It analyzes behavior in real time and blocks what doesn’t look like a legitimate visitor:

  • automated scanners sweeping thousands of sites for vulnerable PHP servers,

  • abnormal request patterns that don’t match the normal use of your application,

  • IPs already showing malicious activity across the platform.

That gives your teams time to patch properly, in the right order, without improvising at 2 a.m.

Key takeaways

  • PHP2Shell affects PHP itself, not one application. Assume you are in scope.

  • Patch to 8.5.12, 8.4.27, 8.3.36 or 8.2.35, then restart workers.

  • Temporary mitigations buy time, they don’t close the hole.

  • A preemptive WAF reduces risk while you patch. It is a layer, not a substitute.

Talk to a CYBERDEFENSE.AI expert

See how preemptive, signature-free defense protects your web applications while your teams patch.

Contact us

PHP2Shell (CVE-2026-109618/109619): What to Do Now | CYBERDEFENSE.AI