32,252
Attack attempts in three hours
20:00 to 23:00 UTC, 21 October
92.6%
Attacking IPs already known to OneFirewall
25 of 27 IPs scored before the burst
99.96%
Attempts sent by known IPs
the 2 unknown IPs sent 0.04%
90%
Attempts from IPs scored High or Critical
safe to deny automatically
27
Source IPs
top origins: US, RO, CN
3
Organisations targeted
Alliance members sharing research traffic
1 · The attack

One request to a vulnerable PHP file is enough.

Attackers scan the internet for PHP files they can abuse: a vulnerable upload form, an eval endpoint, or a web shell left behind by an earlier break-in. One successful hit gives them remote code execution on the web server, and everything that follows.

  1. 01ScanAutomated requests probe .php paths across the internet.
    OneFirewall blocks here
  2. 02ExploitAn upload form, eval endpoint or old web shell accepts the payload.
  3. 03ExecuteThe attacker runs code on the web server.
  4. 04SpreadData and credentials are stolen, and the attacker moves into the internal network.
  5. 05Cash inRansomware is deployed or the server joins a botnet.

A blocking rule acts at step 1: a known IP never reaches the PHP endpoint, so the later steps never start.

2 · The burst

From under 100 requests an hour to 15,562.

The evening was quiet until 20:00 UTC. Then came 6,284 attempts in the first hour, 15,562 in the second and 10,406 in the third, and the wave stopped as sharply as it had started.

16h17h18h19h20h21h22h23h

Attempts per hour, 21 October 2026, UTC. Orange marks the burst.

3 · Prior knowledge

Most of the attackers were already scored, and most were scored high.

OneFirewall gives every IP a crime score from 0 to 1000, built from what Alliance members report. At the time of each event, 25 of the 27 IPs had a score of at least 10, and 17 were already Critical (150 or more), sending 89.6% of the traffic.

Blocking threshold (score at least)IPs blockedShare of IPsShare of attemptsIPs that get through
1025 of 2792.6%100.0%2
3023 of 2785.2%99.9%4
8020 of 2774.1%90.9%7
150 (Critical)17 of 2763.0%89.6%10

Score at the time of each event. 100.0% is rounded: 99.96% of attempts came from known IPs.

4 · How long we knew them

Some attackers were known for over a year, others for less than a day.

Of the 25 known IPs, 12 had been scored more than a month before the attack. 5 were picked up only in the 7 days before it, and 2 in the last 24 hours: intelligence from one member reaches every other member fast enough to matter.

Over a year before the attack3
1 to 12 months before9
7 to 30 days before8
1 to 7 days before3
In the 24 hours before2

When each of the 25 known IPs was first scored by OneFirewall. Orange marks the last 7 days.

5 · Who was behind it

Critical-scored IPs sent nine attempts in ten.

17 of the 25 scored IPs were Critical, and they sent 28,899 attempts. Medium-scored IPs sent 3,190, High 145 and Low 4.

Share of scored attempts
Critical 28,899High 145Medium 3,190Low 4
Share of scored IPs
Critical 17High 2Medium 4Low 2
Top 3 attackers by attempts
IPCountryAttemptsScore
216.36.112.xUS5,330436
171.34.139.xCN4,940677
80.94.95.xRO4,685444
Top 3 attackers by crime score
IPCountryAttemptsScore
171.34.139.xCN4,940677
103.160.205.xID2,647584
169.58.137.xUS4,390558

Critical 150 or more, High 90 to 150, Medium 40 to 90, Low under 40. The last octet of each IP is masked.

6 · Where OneFirewall comes in

Known attackers are stopped at the first request.

This is how OneFirewall contains exploitation attacks like PHP2Shell: before a patch is applied, and before anyone in the SOC has read an alert.

Known before the first request

25 of the 27 IPs were in the OneFirewall database before the burst started. A blocking rule on the firewall would have dropped them at the first request, before any PHP file was touched.

Shared across the Alliance fast

An IP reported by one member is scored and sent to every member. 5 of these attackers were scored only in the 7 days before the attack, and 2 in the last 24 hours.

Safe to deny automatically

IPs scored High or Critical sent 90% of the burst. At that confidence the rule can be enforced without a person approving each block.

Enforced on the firewall you already run

The WCF Agent pushes the scored list to any of 166+ integrations, including Check Point, Fortinet and Palo Alto, so the block happens at the perimeter, not in the application.

See the integrations →

Recommendation: set your blocking score threshold below 150. At 150, 10 of these 27 IPs would have got through. At 80, 20 of the 27 IPs and 91% of the traffic are blocked. Also patch or remove any exposed PHP upload and eval endpoints.

Method

How these numbers were produced

  • Source: live events from Alliance members who have opted in to the research and share their traffic, 21 October 2026, 20:00 to 23:00 UTC. Data prepared by the OneFirewall SOC team.
  • The numbers count attempts, not confirmed compromises.
  • Scores are the crime score each IP had at the time of each event.
  • Only opted-in members are included, so the numbers understate the real size of the wave across the internet.
  • The last octet of every IPv4 address is masked.

Would your threshold have stopped this wave?

Start a free Proof of Value and see which known attackers already reach your perimeter.

Download the briefing (PDF) Get Started