Saltar al contenido
← Publicaciones

2026

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

Autores: Daniel Alfocea

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.

Escucha el audio que explica por qué la IA se vuelve tonta

Mando un email al día y, nada más apuntarte, escuchas un audio de diez minutos con lo que casi nadie sabe de ChatGPT y Claude.

Daniel Alfocea