On Thursday 20 November 2025 at 12:27 UTC, a TLS handshake exhaustion targeted a developer platform customer in North America. The attack peaked at 957.1 million requests per second and lasted 95 minutes. Traffic originated from 1696 autonomous systems in 25 countries, predominantly compromised cloud VMs.
| Vector | TLS handshake exhaustion |
| Peak | 957.1 million requests per second |
| Duration | 95 min |
| Time to mitigation | 0.755 s |
| Attack traffic reaching origin | 0.052% |
| Legitimate traffic challenged | 0.71% |
Timeline
The attack was preceded by an extortion email received two days earlier. Request rates on the targeted routes exceeded their hourly baseline by a factor of 632 within 15 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
A brief increase in p99 latency of 58 ms during the first minute, then normal service.
Recommendations
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Keep origin IPs out of public DNS history.
- Enable log streaming to your SIEM for faster correlation.
Clear and practical, thanks.
Is the risk score exposed in the logs so we can build our own dashboards on it?
Clear and practical, thanks.
Verified good bots and allow-listed partners bypass challenges entirely.