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.
// 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
});// 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
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Conexión a Base de Datos Sin Cifrado
highTu conexión a la base de datos no usa SSL/TLS, lo que significa que todas las consultas y resultados viajan por la red en texto plano y pueden ser interceptados.
Base de Datos Accesible Públicamente
criticalTu base de datos está vinculada a 0.0.0.0 o expuesta en una IP pública sin VPC o firewall, haciéndola directamente accesible desde internet.
Credenciales de Base de Datos por Defecto
criticalTu base de datos usa credenciales predeterminadas de fábrica como postgres:postgres, root:root o admin:admin — lo primero que prueba cualquier atacante.
Cadena de Conexión con Contraseña Inline
highUna cadena de conexión a base de datos con contraseña en texto plano está hardcodeada en tu código fuente, comprometiendo tus credenciales de base de datos en el control de versiones.