mediumCWE-16A05:2021

NODE_ENV No Configurado como Production

Correr Node.js sin NODE_ENV=production habilita mensajes de error detallados, deshabilita optimizaciones de caché y puede activar middleware solo para desarrollo.

Cómo Funciona

Muchas librerías (Express, React, Next.js) verifican NODE_ENV para decidir su comportamiento. En modo no-producción, Express incluye stack traces en respuestas de error, React incluye advertencias de desarrollo y reconciliación más lenta, y algunas librerías omiten headers de seguridad. Un NODE_ENV incorrecto en producción filtra información y reduce el rendimiento.

Código Vulnerable
# MAL: NODE_ENV no configurado o en desarrollo en producción
# Dockerfile o config de deployment
ENV NODE_ENV=development  # o no configurado del todo
# Express incluirá stack traces en respuestas 500
# Los builds de React serán bundles de desarrollo no optimizados
Código Seguro
# BIEN: establece NODE_ENV=production explícitamente en todos los entornos de producción
# Dockerfile
ENV NODE_ENV=production

# O en tu plataforma de deployment (Vercel, Railway, Heroku):
# NODE_ENV=production en la configuración de Variables de Entorno

Ejemplo Real

Una auditoría de seguridad de una aplicación fintech encontró que NODE_ENV estaba configurado como 'development' en producción, causando que Express retornara stack traces completos a los clientes de la API. Los stack traces revelaban rutas de archivos internos, versiones de librerías y strings de consultas a la base de datos.

Cómo Prevenirlo

  • Establece NODE_ENV=production explícitamente en todos los deployments de producción
  • Agrega una verificación al inicio que salga si NODE_ENV no es 'production' en un entorno de producción
  • Verifica NODE_ENV en la respuesta de tu endpoint de health check
  • Audita todas las verificaciones de NODE_ENV en tu codebase para entender qué cambia entre dev y prod

Tecnologías Afectadas

Node.js

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas