mediumCWE-400A05:2021

Abuso de Timeout de Función

Las funciones serverless sin timeout configurado pueden mantenerse corriendo indefinidamente con requests maliciosas, drenando tu presupuesto.

Cómo Funciona

Los proveedores cloud cobran por milisegundo de ejecución. Sin un timeout, un atacante puede mandar una request lenta que mantiene tu función viva por el límite máximo de la plataforma (15 minutos en Lambda). Multiplica eso por invocaciones concurrentes y tienes un ataque de denial-of-wallet.

Código Vulnerable
// MAL: serverless.yml sin timeout — por default puede ser 900s en AWS
functions:
  api:
    handler: src/handler.main
    # sin timeout configurado
Código Seguro
// BIEN: establece un timeout justo para el trabajo esperado de la función
functions:
  api:
    handler: src/handler.main
    timeout: 10  # segundos — falla rápido si algo se cuelga

Ejemplo Real

Una startup reportó una factura de $2,300 USD en AWS en un solo día después de que un bot empezó a mandar requests lentas que mantenían sus funciones Lambda abiertas por el timeout máximo de 900 segundos.

Cómo Prevenirlo

  • Establece timeouts explícitos en cada función — nunca dependas de los defaults de la plataforma
  • Pon el timeout un poco por encima de tu tiempo de ejecución p99, no el máximo de la plataforma
  • Habilita AWS Lambda Concurrency Limits o equivalente para limitar ejecuciones paralelas
  • Configura alertas de facturación para detectar picos de costo inesperados temprano

Tecnologías Afectadas

aws-lambdavercelcloudflare-workers

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas