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.
# 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# 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 EntornoEjemplo 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
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Modo Debug Activo en Producción
mediumEl modo debug habilitado en producción expone estado interno, habilita logging detallado y a veces activa endpoints de debugging interactivos que los atacantes pueden explotar.
Sin Endpoint de Health Check
lowSin un endpoint /health, los load balancers y orquestadores no pueden verificar que tu aplicación realmente funciona antes de enrutar tráfico hacia ella.
Sin Monitoreo de Errores
lowSin monitoreo de errores, los errores de producción son invisibles hasta que un usuario los reporta — lo cual la mayoría nunca hace.
Variables de Entorno de Dev en Producción
highUsar credenciales de desarrollo (API keys de prueba, URLs de base de datos local, keys de pago sandbox) en producción pone en riesgo a usuarios reales.