On Friday 11 July 2025 at 08:10 UTC, a TLS handshake exhaustion targeted a municipal services customer in North America. The attack peaked at 272.8 million requests per second and lasted 22 minutes. Traffic originated from 1135 autonomous systems in 16 countries, predominantly mobile carrier ranges.
| Vector | TLS handshake exhaustion |
| Peak | 272.8 million requests per second |
| Duration | 22 min |
| Time to mitigation | 0.423 s |
| Attack traffic reaching origin | 0.014% |
| Legitimate traffic challenged | 0.40% |
Timeline
The attack was preceded by a hacktivist channel announcing the target. Request rates on the targeted routes exceeded their hourly baseline by a factor of 730 within 33 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
- Add a dedicated rate limit for the targeted route.
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Keep origin IPs out of public DNS history.
Interesting that most attacks are under ten minutes. Our experience is similar.
We moved from a scrubbing provider to always-on last year; time to mitigation went from minutes to basically nothing.
Our auditors asked for exactly this kind of incident evidence under DORA.
Is the risk score exposed in the logs so we can build our own dashboards on it?
Interesting that most attacks are under ten minutes. Our experience is similar.
Our auditors asked for exactly this kind of incident evidence under DORA.
The point about origin IPs leaking through certificate transparency logs is underrated.