On Monday 25 August 2025 at 05:20 UTC, a credential stuffing targeted a electronics retail customer in the Nordics. The attack peaked at 158.4 million requests per second and lasted 186 minutes. Traffic originated from 1886 autonomous systems in 48 countries, predominantly a headless-browser farm.
| Vector | credential stuffing |
| Peak | 158.4 million requests per second |
| Duration | 186 min |
| Time to mitigation | 0.467 s |
| Attack traffic reaching origin | 0.026% |
| Legitimate traffic challenged | 0.47% |
Timeline
The attack was preceded by no stated motive. Request rates on the targeted routes exceeded their hourly baseline by a factor of 506 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
- Add a dedicated rate limit for the targeted route.
- Keep origin IPs out of public DNS history.
- Lower challenge thresholds on authentication endpoints during high-risk events.
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?
Great to hear, thanks for sharing your experience.
Clear and practical, thanks.
Clear and practical, thanks.