On Tuesday 3 June 2025 at 02:51 UTC, a credential stuffing targeted a online payments customer in North America. The attack peaked at 569.9 million requests per second and lasted 178 minutes. Traffic originated from 119 autonomous systems in 107 countries, predominantly a headless-browser farm.
| Vector | credential stuffing |
| Peak | 569.9 million requests per second |
| Duration | 178 min |
| Time to mitigation | 0.709 s |
| Attack traffic reaching origin | 0.062% |
| Legitimate traffic challenged | 0.51% |
Timeline
The attack was preceded by no stated motive. Request rates on the targeted routes exceeded their hourly baseline by a factor of 177 within 11 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.
- Review allow-listed partner ranges quarterly.
- Lower challenge thresholds on authentication endpoints during high-risk events.
We had the exact false-positive issue with CGNAT carriers. The weighting change makes sense.
Thanks — sharing this with our on-call team.
Thanks! Yes — the risk score and its components are included in every log record.
The billing model is what got our finance team on board, honestly.