On Thursday 24 June 2021 at 07:48 UTC, a credential stuffing targeted a online payments customer in the Benelux. The attack peaked at 811.5 million requests per second and lasted 79 minutes. Traffic originated from 1145 autonomous systems in 30 countries, predominantly hijacked home routers.
| Vector | credential stuffing |
| Peak | 811.5 million requests per second |
| Duration | 79 min |
| Time to mitigation | 0.823 s |
| Attack traffic reaching origin | 0.082% |
| Legitimate traffic challenged | 0.04% |
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 584 within 20 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
- Enable authenticated origin pulls.
- Review allow-listed partner ranges quarterly.
- Lower challenge thresholds on authentication endpoints during high-risk events.
Thanks — sharing this with our on-call team.
Any plans to support per-tenant limits keyed on a JWT claim?
We moved from a scrubbing provider to always-on last year; time to mitigation went from minutes to basically nothing.