Exploitation reports · Cloudflare / WAF · 4 sourced facts

Cloudflare reports millions of PHP2Shell attempts after disclosure

The WAF provider deployed protections about nine hours before disclosure and then tracked a steep rise in attack traffic. It still says customers must patch.

Published22 October 2026 Event date22 October 2026 Last substantive update22 October 2026, 16:45 UTC Reading time1 min

Key facts

Each fact is linked to the source that supports it.
  1. Cloudflare says its managed protections went live at 03:02 UTC on 21 October, about nine hours before public disclosure. Cloudflare
  2. Cloudflare observed attack traffic targeting customers and tracked attackers mutating payloads to bypass protections. Cloudflare
  3. Cloudflare's CEO reported tens of thousands of attempts within 45 minutes of the announcement, hundreds of thousands within two hours and millions by Thursday. SecurityWeek
  4. Cloudflare states that customers should patch their PHP installations even with WAF protections. Cloudflare

Cloudflare’s telemetry

Cloudflare published an account of its PHP2Shell response on 21 October. It says managed WAF protections went live at 03:02 UTC, roughly nine hours before public disclosure, and that it observed attack traffic against customers. The post also describes attackers changing payloads to try to get past the rules.

SecurityWeek subsequently reported figures attributed to Cloudflare CEO Matthew Prince: thousands of attempts in the ten hours before the announcement, tens of thousands within 45 minutes after it, hundreds of thousands within two hours, and millions by Thursday.

Why attempts are not compromises

This is the clearest public evidence that exploitation is not theoretical. It is also a reminder that attempt counts are not victim counts. A blocked request is an attempt. A successful compromise is a different event, and the public reporting reviewed here does not establish a confirmed mass compromise.

Cloudflare’s own conclusion is the important operational sentence: patch even with WAF protection. A WAF rule can be bypassed by payload variation, and a request that does not match a rule reaches the origin. The rule set is a way to buy time while updating, not a substitute for the update.

What to do with a WAF

If you run a WAF in front of PHP, confirm that the relevant managed rules are actually deployed in blocking mode, not merely available. Then patch PHP and restart workers. Keep the WAF in place during the transition. Do not treat “no alerts” as evidence that the origin is clean, because the flaws execute below application logging and a successful request may return a normal status.

Sources for this page

Revision history

Time (UTC) Recorded change
22 October 2026, 16:45 UTC Separated Cloudflare's own statements from figures reported by SecurityWeek.
22 October 2026, 16:45 UTC Current published version.

This is an independent summary written by PHP2Shell Live. It is not a republished article and is not an official notice from PHP, any vendor or any agency. Read the editorial policy.

Search PHP2Shell Live

Type to search the local index Results stay in your browser
↑ ↓ move Enter open Esc close