← Volver a Papers
Pending EN REVISIÓN June 2026

Slow JSON Stream: A Low-Bandwidth Denial-of-Service Attack Against HTTP APIs with JSON Request Bodies

Abstract

Ataque DoS de bajo 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 de bajo ancho de banda 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 al lector de cuerpo del framework y al parser JSON, donde la mayoría de frameworks no tienen timeout configurado 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 aprobación para publicación.