On Friday 6 June 2025 at 08:52 UTC, a cache-busting query flood targeted a B2B SaaS customer in the Nordics. The attack peaked at 49.1 million requests per second and lasted 55 minutes. Traffic originated from 1616 autonomous systems in 41 countries, predominantly compromised cloud VMs.
| Vector | cache-busting query flood |
| Peak | 49.1 million requests per second |
| Duration | 55 min |
| Time to mitigation | 0.253 s |
| Attack traffic reaching origin | 0.087% |
| Legitimate traffic challenged | 0.79% |
Timeline
The attack was preceded by a ransom note demanding payment in Monero. Request rates on the targeted routes exceeded their hourly baseline by a factor of 368 within 28 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
Checkout conversion was unchanged compared with the same hour of the previous week.
Recommendations
- Keep origin IPs out of public DNS history.
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Enable log streaming to your SIEM for faster correlation.
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?
Thanks! Yes — the risk score and its components are included in every log record.
The point about origin IPs leaking through certificate transparency logs is underrated.
We moved from a scrubbing provider to always-on last year; time to mitigation went from minutes to basically nothing.
Is the risk score exposed in the logs so we can build our own dashboards on it?