NEW RESEARCH: WHAT IS A LAYER 7 DDOS ATTACK, AND WHY YOUR HOST DOESN'T STOP IT.Read the report Sign in

The Flood Came Back for a Login Page.

On 23 October 2026 at 02:49 UTC, the tool behind our 20 October flood came back. For just under 12 minutes it sent 96.8 million HTTP/2 requests to the login page of a website we protect, from about 1.07 million addresses in 58 countries. About half of the addresses had already flooded us two days earlier.

96.8 millionrequests in just under 12 minutes. All but 383 were stopped at the edge.
350,333requests in the busiest second.
≈1.07 millionaddresses in about 557,000 /24 networks and 58 countries.
≈476,000addresses that had also sent the 20 October flood.
The flood

Twelve minutes at one login page

At 02:49:08 UTC on 23 October 2026 a flood of HTTP/2 requests hit the login page of a website we protect. It ran until 03:01 UTC, just under 12 minutes.

In that time the edge received 96,785,711 requests, about 135,000 a second on average. The busiest second, right at the start, carried 350,333. All but 383 requests were stopped at the edge. The website stayed online and kept serving its visitors, and the other websites on the same edge were served normally.

The same tool

The same seven Safaris, the same two Googles

The requests carried the fingerprints of the 20 October flood:

  • The same seven User-Agents in an even rotation. All seven claim Safari on iPhone and iPad, and each carried between 14.2% and 14.3% of the requests, the same strings in the same even split as on 20 October.
  • The same referers. Half of the requests named https://www.google.com.tr/ and half https://www.google.com/ (50.0% and 49.9%).
  • One request, over and over. Practically every request was a GET for the login page, and all but 620 of the 96.8 million came over HTTP/2.
User-AgentShare
Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.114.3%
Mozilla/5.0 (iPhone; CPU iPhone OS 17_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.114.3%
Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.114.3%
Mozilla/5.0 (iPad; CPU OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.114.3%
Mozilla/5.0 (iPad; CPU OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.114.2%
Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Mobile/15E148 Safari/604.114.2%
Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Mobile/15E148 Safari/604.114.2%

What changed was the setting. The flood aimed at a login page instead of a home page, and it ran more than three times as long at about a quarter of the rate.

20 October23 October
TargetA home pageA login page
Duration3 minutes 29 secondsJust under 12 minutes
Requests118.0 million96.8 million
Busiest second1,015,237350,333
Average a second≈564,000≈135,000
Addresses≈889,000≈1.07 million
/24 networks≈478,000≈557,000
Countries5258
Data received49 GB42 GB
Minute by minute

A crowd that ran out of new faces

On 20 October the crowd changed every minute: 98% of the second minute's addresses were new. This time the flood ran long enough to use its crowd up. The first two minutes were almost all new addresses. From the third minute on, the share of new ones kept falling, and in the last minute 98% of the addresses had already been seen in this flood.

Minute (UTC)RequestsBusiest secondAddressesNot seen before
02:49 (from :08)11,193,260350,333≈345,000≈345,000
02:508,003,996173,581≈248,000≈248,000
02:518,691,230176,607≈273,000≈164,000
02:529,704,972177,119≈303,000≈103,000
02:538,634,396153,266≈271,000≈72,000
02:548,612,585152,792≈273,000≈40,000
02:557,974,160142,343≈240,000≈29,000
02:567,513,451131,326≈235,000≈20,000
02:577,245,004128,037≈224,000≈12,000
02:586,814,750121,177≈208,000≈16,000
02:596,769,089118,114≈211,000≈10,000
03:005,628,818119,391≈177,000≈4,000

In any one minute the flood came from 177,000 to 345,000 addresses. Over the whole flood it reached about 1.07 million, and then it had no new ones left to bring.

Two floods, one crowd

Half the crowd came back

We compared the addresses of the two floods. About 476,000 took part in both: about 54% of the 20 October crowd came back, and they made up about 44% of the new one. At the level of /24 networks the overlap was larger. About 72% of the networks seen on 20 October appeared again.

Together the two floods came from about 1.49 million different addresses. That is the size of the crowd this tool has shown us so far, not the size of the network behind it: the other half of each crowd was new. Home and mobile connections change addresses all the time, so a botnet of infected devices or a residential proxy network reappears partly under new addresses and largely inside the same networks, which is what we saw.

Where it came from

Home connections in 58 countries

The 1.07 million addresses were spread over about 557,000 /24 networks, fewer than two per network. No country sent more than 15% of the requests. Compared with 20 October, more of the flood came from China and Vietnam.

CountryShare of requests
United States15.0%
Russia10.1%
China8.2%
Brazil7.5%
United Kingdom4.9%
Vietnam4.0%
Canada3.8%
Mexico3.4%
Colombia3.3%
Japan3.2%
Others36.6%

The largest networks were again home and mobile internet providers. The largest sent less than 5% of the requests, and the ten largest together less than 22%.

NetworkAS numberShare of requests
ChinanetAS41344.3%
ComcastAS79223.7%
RostelecomAS123893.1%
China UnicomAS48371.9%
AT&TAS70181.8%
VNPTAS458991.7%
Uninet (Telmex)AS81511.4%
VerizonAS7011.4%
Virgin MediaAS50891.4%
ViettelAS75521.2%
For defenders

What this flood says about protecting a login page

Login limits per address do not reach it

Over the whole flood each address sent about 90 requests, one every eight seconds. In the first 52 seconds, about 345,000 addresses sent 11.2 million requests: about 0.6 a second each. A login limit that low also locks out real customers who share an address.

Last attack's blocklist covers half

A list of every address from the 20 October flood would have held less than half of the addresses of this one. And those are home connections: the same addresses belong to real customers of the same providers.

Coming back is not proof

Addresses repeated, within this flood and across the two. Real visitors repeat too, behind the same shared and reassigned home addresses. Seeing an address again says little about the device behind it.

As on 20 October, what told the flood apart from real visitors was what each client showed on its own requests and connections, not where it came from or whether we had seen its address before. Shieldify decides per request and per client on that evidence, so a customer on the same network as an attacking device can still log in.

How we measured

Data and method

All figures come from Shieldify's edge, which recorded the flood as it happened. Request and byte counts are exact. Distinct addresses and /24 networks are HyperLogLog estimates (about ±2%). The overlap of the two floods comes from merging their HyperLogLog sketches and is good to about ±35,000 addresses. Country, network, User-Agent, referer and path shares are estimated from a weighted sample of the requests. Times are in UTC. We publish no addresses, and we do not name the website.

Countries and networks: IP Geolocation by DB-IP (IP to Country Lite and IP to ASN Lite, CC BY 4.0).

More research

Under AttackRight Now?

Point one DNS record to Shieldify and protection starts, also in the middle of an attack.