2026
Slow JSON Stream: A Low-Bandwidth Denial-of-Service Attack Against HTTP APIs with JSON Request Bodies
Abstract
Ataque DoS de poco ancho de banda contra APIs HTTP que aceptan cuerpos JSON. El atacante abre una conexión HTTP/1.1 chunked y envía un prefijo JSON válido a un byte por segundo, bloqueando el parser. 90% de los 41 targets evaluados son vulnerables con configuración por defecto.
Slow JSON Stream es un ataque de denegación de servicio que gasta muy poco ancho de banda y va contra APIs HTTP que aceptan cuerpos application/json.
Cómo funciona
El atacante abre una conexión HTTP/1.1 con Transfer-Encoding chunked y envía un prefijo JSON válido (por ejemplo {"items":[{...,}) a un byte por segundo, sin enviar nunca el token de cierre. Slowloris hace lo mismo con las cabeceras HTTP y los servidores ya lo cortan con client_header_timeout. Esta variante llega más adentro, al lector de cuerpo del framework y al parser JSON, y ahí la mayoría de frameworks no traen ningún timeout por defecto.
Resultados
Evalué 32 combinaciones de framework/runtime y 9 targets de infraestructura (proxies, WAFs, API gateways). El 90% de los 41 targets son vulnerables con configuración por defecto.
- Tier 1 (explotable con 64 conexiones): 6 targets, 5 frameworks más Kong CE API Gateway
- Tier 2 (sin timeout de cuerpo efectivo, conexiones que se acumulan indefinidamente): 29 targets
- Tier 3 (error rate al 100% bajo 64 conexiones): Flask sync y Rails
- Tier 4 (resistentes por defecto): 4 targets
Los datos, herramientas y el testbed Docker están disponibles públicamente para replicación exacta.
Estado: pendiente de que lo aprueben para publicarlo.