mediumCWE-400A05:2021

Sin Límite de Tamaño del Cuerpo de Request

Los endpoints de API JSON sin límite de tamaño del body pueden ser víctimas de DoS enviando payloads JSON enormes que agotan la memoria del servidor durante el parseo.

Cómo Funciona

El middleware de parseo del body de Node.js (express.json, bodyParser de Next.js) carga todo el body de la request en memoria antes de parsearlo. Sin un límite de tamaño, un atacante envía una request JSON de 100MB. El servidor intenta parsearla, asigna 100MB+ de memoria y puede crashear o volverse irresponsable.

Código Vulnerable
// MAL: sin límite de tamaño del body — el atacante envía body JSON de 100MB
// next.config.ts
export default {
  // sin límite de tamaño de bodyParser configurado
};

// O en Express sin límite:
app.use(express.json()); // el default es 100kb, pero frecuentemente se sobreescribe a ilimitado
Código Seguro
// BIEN: límites explícitos de tamaño del body
// next.config.ts — sobreescribe el default por ruta si es necesario
export const config = {
  api: {
    bodyParser: {
      sizeLimit: '1mb' // límite explícito — ajusta por endpoint
    }
  }
};
// Para Express:
app.use(express.json({ limit: '100kb' }));

Ejemplo Real

Las aplicaciones Express con bodyParser configurado para aceptar bodies de request ilimitados han sido usadas como amplificadores en ataques DoS. Una sola máquina atacante enviando 10 requests concurrentes de 50MB puede hacer que un servidor Node.js asigne 500MB+ y crashee.

Cómo Prevenirlo

  • Establece un límite explícito de tamaño del body en todos los endpoints JSON (1MB suele ser suficiente para payloads de API)
  • Usa diferentes límites para diferentes tipos de endpoint: 100KB para auth, 1MB para API general, 10MB para operaciones masivas
  • Valida el header Content-Length antes de leer el body para rechazar requests demasiado grandes tempranamente
  • Rechaza requests sin header Content-Length en endpoints que esperan un body

Tecnologías Afectadas

Node.js

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas