highCWE-532A09:2021

Variables de Entorno en Logs

Loguear process.env vuelca todos tus secrets — API keys, contraseñas de base de datos, claves de firma — directamente en tu sistema de logs.

Cómo Funciona

process.env es un objeto plano que contiene todas las variables de entorno. Un solo console.log(process.env) durante debugging, si se queda en código de producción, transmite todos tus secrets a CloudWatch, Datadog o cualquier agregador de logs que uses. Cualquiera con acceso de lectura a logs ahora tiene tus credenciales de producción.

Código Vulnerable
// MAL: loguear todo el objeto env expone cada secret
console.log('Iniciando con config:', process.env);
console.log('Debug info:', { env: process.env, request: req.body });
Código Seguro
// BIEN: loguea solo los valores específicos no sensibles que necesitas
console.log('Iniciando con config:', {
  NODE_ENV: process.env.NODE_ENV,
  PORT: process.env.PORT,
  // nunca loguees _KEY, _SECRET, _PASSWORD, _TOKEN
});

Ejemplo Real

Un incidente de 2022 en una startup de pagos expuso su Stripe secret key y contraseña de base de datos en logs de Datadog. Un contractor disgustado con acceso a los logs usó las credenciales para exfiltrar datos de pago de clientes.

Cómo Prevenirlo

  • Nunca loguees process.env, ni en desarrollo — loguea solo keys específicas y seguras explícitamente
  • Agrega un middleware de scrubbing de logs que redacte patrones como *_KEY, *_SECRET, *_PASSWORD, *_TOKEN
  • Configura tu logger (Winston, Pino) con una opción de redact para nombres de campos sensibles
  • Audita tus logs regularmente para detectar exposición accidental de secrets

Tecnologías Afectadas

Node.jsPython

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas