On Saturday 14 March 2026 at 02:21 UTC, a WebSocket connection flood targeted a developer platform customer in the Nordics. The attack peaked at 679.3 million requests per second and lasted 151 minutes. Traffic originated from 1782 autonomous systems in 45 countries, predominantly hijacked home routers.
| Vector | WebSocket connection flood |
| Peak | 679.3 million requests per second |
| Duration | 151 min |
| Time to mitigation | 0.866 s |
| Attack traffic reaching origin | 0.028% |
| Legitimate traffic challenged | 0.24% |
Timeline
The attack was preceded by no stated motive. Request rates on the targeted routes exceeded their hourly baseline by a factor of 880 within 17 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
- Review allow-listed partner ranges quarterly.
- Add a dedicated rate limit for the targeted route.
- Lower challenge thresholds on authentication endpoints during high-risk events.
Is the risk score exposed in the logs so we can build our own dashboards on it?
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?
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 billing model is what got our finance team on board, honestly.
Any plans to support per-tenant limits keyed on a JWT claim?