On Thursday 13 August 2026 at 08:48 UTC, a HTTP/2 rapid reset targeted a news publisher customer in the UK. The attack peaked at 44.6 million requests per second and lasted 136 minutes. Traffic originated from 3721 autonomous systems in 115 countries, predominantly compromised cloud VMs.
| Vector | HTTP/2 rapid reset |
| Peak | 44.6 million requests per second |
| Duration | 136 min |
| Time to mitigation | 0.170 s |
| Attack traffic reaching origin | 0.000% |
| Legitimate traffic challenged | 0.16% |
Timeline
The attack was preceded by a competitor’s product launch. Request rates on the targeted routes exceeded their hourly baseline by a factor of 372 within 16 seconds. The risk score of participating clients crossed the challenge threshold automatically and proof-of-work difficulty rose with origin load.
What the customer saw
The customer’s status page stayed green throughout; they learned about the attack from our notification.
Recommendations
- Review allow-listed partner ranges quarterly.
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Add a dedicated rate limit for the targeted route.
Solid runbook advice. The DNS-at-2am point hit home.
We had the exact false-positive issue with CGNAT carriers. The weighting change makes sense.
Good question. We will cover that in a follow-up post.
The billing model is what got our finance team on board, honestly.
Thanks! Yes — the risk score and its components are included in every log record.
This matches what we see in iGaming around big matches.
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?