highCWE-306OWASP A07:2021

Redis Sin Autenticación

Tu instancia de Redis no tiene contraseña y es accesible más allá de localhost, permitiendo que cualquiera que pueda alcanzarla lea todos los datos en caché, tokens de sesión y contenidos de colas.

Cómo Funciona

Redis se usa frecuentemente para sesiones, rate limiting y colas de trabajos — todos los cuales contienen datos sensibles. Por defecto, Redis no requiere autenticación. Si tu instancia de Redis está vinculada a una dirección que no es localhost sin requirepass configurado, cualquiera en la red puede conectarse con redis-cli y leer o sobreescribir todo. Los atacantes también usan Redis CONFIG SET para escribir web shells en el sistema de archivos.

Código Vulnerable
// MAL: conexión a Redis sin contraseña, vinculado a no-localhost
const redis = new Redis({
  host: '0.0.0.0', // escucha en todas las interfaces
  port: 6379
  // Sin contraseña — cualquiera puede conectarse
});
Código Seguro
// BIEN: requiere autenticación y vincula solo a localhost o IP de VPC
const redis = new Redis({
  host: process.env.REDIS_HOST, // IP privada de VPC o 127.0.0.1
  port: 6379,
  password: process.env.REDIS_PASSWORD // requirepass en redis.conf
});

Ejemplo Real

Los investigadores han demostrado repetidamente usar Redis sin autenticación para lograr compromiso completo del servidor: conectar, correr CONFIG SET dir /var/www/html, CONFIG SET dbfilename shell.php, luego SET y SAVE para escribir un webshell PHP. Este vector de ataque ha sido explotado en la práctica numerosas veces.

Cómo Prevenirlo

  • Siempre configura requirepass en redis.conf con una contraseña aleatoria fuerte (32+ caracteres)
  • Vincula Redis a 127.0.0.1 o tu IP privada de VPC — nunca a 0.0.0.0
  • Deshabilita el comando CONFIG en producción si no lo necesitas: rename-command CONFIG '' en redis.conf
  • Usa el sistema ACL de Redis 6+ para crear usuarios con permisos mínimos por aplicación
  • Nunca expongas el puerto 6379 de Redis a internet público — usa acceso solo interno a VPC

Tecnologías Afectadas

Node.jsPython

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas