Ejecución Remota de Código Crítica en la Tienda en Memoria Más Rápida del Mundo
La programación Lua de Redis se convierte en la zona de aterrizaje perfecta post-autenticación.
Atacante autenticado → script Lua manipulado → escape del sandbox → RCE total en el host
⚠️ Resumen
CVE-2025-49844 ("RediShell") es una vulnerabilidad crítica de use-after-free (UAF) por corrupción de memoria en el motor de scripting Lua embebido de Redis.
Un usuario autenticado envía un script Lua especialmente diseñado mediante EVAL / EVALSHA que manipula el recolector de basura, provoca un UAF durante el análisis/ejecución, escapa del sandbox de Lua y logra en el host subyacente.
El error permaneció oculto en el código fuente de Redis durante ~13 años (desde la integración temprana de Lua) y afecta prácticamente a todas las versiones con Lua habilitado hasta su parcheo en octubre de 2025.
“Una sola llamada EVAL maliciosa. Control total del servidor. Redis en 2025–2026 se ha vuelto interesante.”
🔥 Gravedad e Impacto
Puntuación Base CVSS v3.1: 10.0 / Crítico (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)
Vector de Ataque: Red (puerto TCP de Redis, normalmente 6379)
Privilegios Requeridos: Bajo (cualquier usuario autenticado de Redis con derechos de ejecución de scripts)
Interacción del Usuario: Ninguna
Madurez del Exploit: PoCs públicos y herramientas de explotación publicados poco después de la divulgación
Realidad en marzo de 2026:
Los exploits públicos apuntan a shells inversas, persistencia, payloads de criptominería
Alto riesgo en entornos cloud (capas de caché, almacenes de sesión, colas)
Combinado con autenticación débil / Redis expuesto → compromiso total de la infraestructura
Muchos despliegues heredados, imágenes Docker y servicios gestionados aún vulnerables
🕵️ Descubrimiento y Crédito
Descubierto por el equipo de Wiz Research
Reportado vía Pwn2Own Berlin (mayo 2025)
Divulgación coordinada: 3 de octubre de 2025 (aviso de Redis + parches)
Apodado "RediShell" por Wiz (RCE tipo shell mediante escape de Lua)
🔬 Inmersión Técnica
Redis embebe Lua 5.x para scripting (EVAL, EVALSHA, funciones, etc.).
La falla reside en la interacción entre el analizador de Lua y el GC:
El atacante envía un script Lua manipulado vía EVAL
Durante el análisis (luaY_parser), un objeto TString se asigna pero no se protege en la pila de Lua
El GC se ejecuta prematuramente → libera el objeto
El código posterior usa la memoria liberada → primitiva UAF
El atacante encadena esto para filtrar memoria, bypassear ASLR, ROP/return-to-libc → ejecución de código nativo arbitrario fuera del sandbox
Punto crítico fatal: El sandbox de Lua nunca fue endurecido contra primitivas de corrupción de memoria.
PoCs completos armados aparecieron en GitHub en cuestión de días (fuga de memoria → ROP → shell).
Muchos incluyen bypass de ASLR, evasión de NX/DEP y opciones de persistencia.
🛡️ Verificar y Remediar (Marzo 2026)
1. Verificar versión
root@kitploit:~
redis-cli INFO SERVER | grep redis_version
→ Vulnerable si es anterior a las versiones parcheadas anteriores
2. Parchear inmediatamente
Actualizar a la última estable (8.2.x+ recomendado)
Para servicios gestionados (AWS/Azure/GCP): forzar actualización o confirmar parche aplicado
3. Endurecimiento
Deshabilitar Lua completamente si no es necesario:
root@kitploit:~
# En redis.conf o ACL
acl setuser default off ~* &* +@all -EVAL -EVALSHA -SCRIPT
Enlazar a localhost / usar TLS + autenticación fuerte
Cortafuegos: restringir TCP/6379 a IPs de confianza
Monitorizar usos anómalos de EVAL
📈 Estado — Marzo 2026
La explotación sigue activa contra instancias cloud/heredadas sin parchear
Redis sigue siendo omnipresente → objetivo de alto valor
Cambio en el ecosistema: muchas organizaciones ahora deshabilitan el scripting Lua por defecto
🎓 Lecciones Aprendidas
Errores de 13 años se esconden en intérpretes embebidos
Escape del sandbox mediante corrupción de memoria = RCE instantáneo
Autenticado no significa seguro — especialmente en servicios expuestos
Parchea rápido, deshabilita funciones riesgosas más rápido