Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-25589-25588-25243-23631-23479-REDIS — Script de diagnóstico y remediación para cinco CVEs de Redis, que proporciona escaneo, mitigación basada en ACL y guía de endurecimiento de configuración para vulnerabilidades de RCE autenticadas. | Kitploit
Herramientas/GitHubGitHub/mgiay/cve-2026-25589-25588-25243-23631-23479-redis
Análisis de VulnerabilidadesAuditoría de ConfiguraciónAprendizaje y EducaciónRecursos CuradosSeguridad de Bases de Datos
GitHubmgiay/cve-2026-25589-25588-25243-23631-23479-redis

CVE-2026-25589-25588-25243-23631-23479-REDIS

Script de diagnóstico y remediación para cinco CVEs de Redis, que proporciona escaneo, mitigación basada en ACL y guía de endurecimiento de configuración para vulnerabilidades de RCE autenticadas.

Ver Repositorio
hace 3 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

GUÍA DE PRUEBA Y MITIGACIÓN DE 5 CVE DE REDIS HASTA EL 08.05.2026

Fecha de publicación: 2026-05-08 Autor: TonyCao ([email protected]) Fuente: Redis Security Advisory


ÍNDICE

  1. Resumen general
  2. Versiones afectadas
  3. Detalle de cada CVE
    • CVE-2026-23479 — Use-after-free en Unblock Client Flow
    • CVE-2026-25243 — Invalid Memory Access en RESTORE
    • CVE-2026-25588 — RESTORE con RedisTimeSeries Module
    • CVE-2026-25589 — RESTORE con RedisBloom Module
    • CVE-2026-23631 — Lua Use-After-Free mediante Master-Replica Sync
  4. Guía de uso del Script
  5. Métodos de mitigación generales
  6. Evaluación de riesgos — Sistemas Redis internos / Sentinel
  7. Referencia ACL
  8. Proceso de verificación periódica
  9. Preguntas frecuentes (FAQ)

RESUMEN GENERAL

El 05/05/2026, Redis Ltd. publicó un security advisory sobre 5 vulnerabilidades de seguridad críticas que afectan a todas las versiones de Redis OSS/CE. Todos los CVE pueden conducir a Remote Code Execution (RCE) si se explotan con éxito.

#Código CVECVSSNivelTipo de falloCondición de explotación
1CVE-2026-234797.7HIGHUse-After-FreeAutenticado, con permiso para ejecutar comandos de bloqueo
2CVE-2026-252437.7HIGHInvalid Memory AccessAutenticado, con permiso para ejecutar RESTORE
3CVE-2026-255887.7HIGHInvalid Memory AccessAutenticado, con permiso RESTORE + módulo RedisTimeSeries
4CVE-2026-255897.7HIGHInvalid Memory AccessAutenticado, con permiso RESTORE + módulo RedisBloom
5CVE-2026-236316.1MEDIUMUse-After-FreeAutenticado, réplica con replica-read-only = disabled

Punto común: Todos los CVE requieren que el atacante esté autenticado (authenticated) en la instancia de Redis. CVE-2026-23631 solo afecta a réplicas con la configuración replica-read-only disabled.


VERSIONES AFECTADAS

Redis OSS/CE — Todas las versiones anteriores al parche

Línea de versiónVersión parcheada (mínima)
6.2.x6.2.22
7.2.x7.2.14
7.4.x7.4.9
8.2.x8.2.6
8.4.x8.4.3
8.6.x8.6.3

Módulos — Versiones parcheadas

MóduloVersión mínima
RedisTimeSeries1.12.14 / 1.10.24 / 1.8.23
RedisBloom2.8.20 / 2.6.28 / 2.4.23

Redis Software (Enterprise)

VersiónParche
8.0.68.0.10-64
7.22.27.22.2-79
7.8.67.8.6-253
7.4.67.4.6-279
7.2.47.2.4-153

Redis Cloud

Todas las implementaciones de Redis Cloud fueron parcheadas automáticamente en el momento de la publicación del advisory.


DETALLE DE CADA CVE

CVE-2026-23479

AtributoValor
TítuloUse-After-Free en Unblock Client Flow
CVSS 4.07.7 (HIGH)
CWECWE-416 (Use After Free)
VectorAV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CondiciónAtacante autenticado, con permiso para ejecutar comandos de bloqueo
AlcanceTodos los Redis OSS/CE, Redis Software <= 8.0.6

Descripción técnica

Cuando un cliente está bloqueado (blocked) — por ejemplo, esperando en BLPOP — y es expulsado durante la re-ejecución del comando bloqueado, la función processCommandAndResetClient puede devolver un error. El código actual no maneja correctamente este caso, lo que provoca que un puntero haga referencia a una región de memoria ya liberada (use-after-free). El atacante puede explotar el UAF para ejecutar código de forma remota (RCE).

Señales de detección

  • El servidor Redis se bloquea con un stack trace que contiene funciones relacionadas con unblock client, processCommandAndResetClient
  • El proceso redis-server ejecuta comandos no identificados
  • Conexiones de red no permitidas hacia la instancia de Redis

Comandos de bloqueo afectados```

BLPOP, BRPOP, BRPOPLPUSH, BLMOVE, BLMPOP, BZPOPMIN, BZPOPMAX, BZMPOP, WAIT, WAITAOF, XREAD, XREADGROUP

root@kitploit:~
#### Método de mitigación (sin actualizar)

**Opción 1 — Bloquear mediante ACL (recomendado):**```bash
# Chặn toàn bộ nhóm lệnh blocking
redis-cli ACL SETUSER default -@blocking

# Hoặc chặn từng lệnh cụ thể
redis-cli ACL SETUSER default -BLPOP -BRPOP -BRPOPLPUSH -BLMOVE -BLMPOP \
                              -BZPOPMIN -BZPOPMAX -BZMPOP \
                              -WAIT -WAITAOF \
                              -XREAD -XREADGROUP

# Lưu ACL
redis-cli ACL SAVE

Método 2 — Deshabilitar mediante rename-command (requiere reiniciar Redis):```bash

Thêm vào redis.conf:

rename-command BLPOP "" rename-command BRPOP "" rename-command BRPOPLPUSH "" rename-command BLMOVE "" rename-command BLMPOP "" rename-command BZPOPMIN "" rename-command BZPOPMAX "" rename-command BZMPOP "" rename-command WAIT "" rename-command WAITAOF "" rename-command XREAD "" rename-command XREADGROUP ""

root@kitploit:~
**Método 3 — Activar el modo protegido y limitar las conexiones:**```bash
redis-cli CONFIG SET protected-mode yes
# Trong redis.conf:
protected-mode yes
bind 127.0.0.1

CVE-2026-25243

AtributoValor
TítuloAcceso a memoria no válido en el comando RESTORE
CVSS 4.07.7 (ALTO)
CWECWE-20 (Validación de entrada incorrecta) + CWE-122 (Desbordamiento de búfer en el montón)
VectorAV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CondiciónAtacante autenticado, con permiso para ejecutar RESTORE
AlcanceTodos los Redis OSS/CE, Redis Software <= 8.0.6

Descripción técnica

La vulnerabilidad incluye 2 sub-problemas:

  1. Doble liberación (double-free) en el núcleo de Redis (detectado por Emil Lerner) — RESTORE procesa un payload serializado especial que provoca la liberación de memoria dos veces sobre el mismo puntero.
  2. Desbordamiento de enteros y lectura fuera de límites en VectorSets (detectado por Joseph Surin) — un payload diseñado especialmente provoca un desbordamiento de enteros, lo que conduce a lecturas/escrituras fuera de la memoria asignada.

Un atacante autenticado envía un payload RESTORE diseñado especialmente para explotar los errores anteriores, lo que puede conducir a RCE en el contexto del proceso redis-server.

Señales de detección

  • Caída (crash) inusual del servidor Redis
  • Cambios en archivos del sistema (especialmente en el directorio que contiene RDB/AOF/config de Redis)
  • Conexiones de red no permitidas hacia/desde la instancia de Redis
  • Archivo de configuración de Redis modificado

Métodos de mitigación (sin actualizar)

Método 1 — Bloquear RESTORE mediante ACL (recomendado):```bash

Chặn lệnh RESTORE

redis-cli ACL SETUSER default -restore

Hoặc chặn toàn bộ nhóm lệnh nguy hiểm

redis-cli ACL SETUSER default -@dangerous

redis-cli ACL SAVE

root@kitploit:~
**Método 2 — Deshabilitar RESTORE (requiere reiniciar Redis):**```bash
# Thêm vào redis.conf:
rename-command RESTORE ""

Método 3 — Crear una ACL de usuario específica para la aplicación:```bash

Tao user cho ung dung chi voi quyen doc/ghi co ban

redis-cli ACL SETUSER app_user on >StrongPass123 ~*
+@read +@write
-@dangerous
-@admin
-@scripting
-@blocking
-restore
-debug

redis-cli ACL SAVE

root@kitploit:~
---

### CVE-2026-25588

| Propiedad    | Valor                                                             |
| ------------ | ----------------------------------------------------------------- |
| **Título**   | Acceso de memoria no válido en RESTORE con el módulo RedisTimeSeries |
| **CVSS 4.0** | **7.7 (ALTO)**                                                    |
| **CWE**      | CWE-20 + CWE-122                                                   |
| **Vector**   | `AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N`          |
| **Condición**| Autenticado + permiso RESTORE + **módulo RedisTimeSeries cargado** |
| **Alcance**  | Redis OSS/CE + módulo RedisTimeSeries                             |

#### Descripción técnica

Cuando el comando `RESTORE` se utiliza en una instancia con el **módulo RedisTimeSeries** cargado, un payload serializado diseñado especialmente puede desencadenar un acceso de memoria no válido durante el procesamiento de datos de series temporales. La vulnerabilidad reside en la forma en que el módulo RedisTimeSeries deserializa los datos del payload RESTORE.

#### Señales de detección

- Caída de Redis con un stack trace relacionado con el módulo RedisTimeSeries
- El módulo RedisTimeSeries está cargado (`MODULE LIST` muestra timeseries)
- Ejecución de comandos no deseada por parte de redis-server

#### Método de mitigación (sin actualizar)

**Opción 1 — Bloquear RESTORE mediante ACL:** (igual que CVE-2026-25243)```bash
redis-cli ACL SETUSER default -restore
redis-cli ACL SAVE

Método 2 — Eliminar el módulo RedisTimeSeries (si no es necesario):```bash redis-cli MODULE UNLOAD timeseries

root@kitploit:~
Después, elimina la siguiente línea de `redis.conf`:```
loadmodule /path/to/redistimeseries.so

Método 3 — Solo actualizar el módulo (sin actualizar Redis):

Descargue la versión parcheada del módulo:

  • RedisTimeSeries 1.12.14 (para la línea 1.12)
  • RedisTimeSeries 1.10.24 (para la línea 1.10)
  • RedisTimeSeries 1.8.23 (para la línea 1.8)```bash

Thay the file .so cu bang phien ban moi

Sau do restart Redis hoac:

redis-cli MODULE UNLOAD timeseries redis-cli MODULE LOAD /path/to/new/redistimeseries.so

root@kitploit:~
---

### CVE-2026-25589

| Atributo    | Valor                                                                          |
| ----------- | ------------------------------------------------------------------------------ |
| **Título**  | Acceso a memoria no válido en RESTORE con el módulo RedisBloom                 |
| **CVSS 4.0**| **7.7 (ALTO)**                                                                 |
| **CWE**     | CWE-20 + CWE-122 + CWE-787 (Escritura fuera de límites) + CWE-190 (Desbordamiento de enteros) |
| **Vector**  | `AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N`                       |
| **Condición**| Autenticado + permiso RESTORE + **módulo RedisBloom cargado**                   |
| **Alcance** | Redis OSS/CE + módulo RedisBloom                                               |

#### Descripción técnica

La vulnerabilidad incluye múltiples sub-problemas en el módulo RedisBloom al procesar payloads RESTORE:

1. **Lectura/escritura fuera de límites** (Daniel Firer) — lectura/escritura fuera del rango de memoria asignada
2. **Desbordamiento de enteros, desbordamiento de búfer en heap y lectura/escritura fuera de límites** (Joseph Surin) — desbordamiento de enteros que conduce a desbordamiento de búfer en heap

Cuando el módulo RedisBloom está cargado, un atacante puede enviar un payload RESTORE diseñado especialmente para explotar los errores anteriores durante la deserialización de datos de filtros Bloom, filtros Cuckoo, Count-Min Sketch o Top-K.

#### Señales de detección

- Caída de Redis con stack trace relacionado con el módulo RedisBloom
- El módulo RedisBloom está cargado (`MODULE LIST` muestra bf/bloom)
- Datos en los filtros Bloom dañados o alterados de forma inusual

#### Métodos de mitigación (sin actualizar)

**Método 1 — Bloquear RESTORE mediante ACL:** (igual que CVE-2026-25243)```bash
redis-cli ACL SETUSER default -restore
redis-cli ACL SAVE

Opción 2 — Eliminar el módulo RedisBloom (si no es necesario):```bash redis-cli MODULE UNLOAD bf

root@kitploit:~
Después, elimina la siguiente línea de `redis.conf`:```
loadmodule /path/to/redisbloom.so

Método 3 — Solo actualizar el módulo (sin actualizar Redis):

Descargue la versión parcheada del módulo:

  • RedisBloom 2.8.20 (para la serie 2.8)
  • RedisBloom 2.6.28 (para la serie 2.6)
  • RedisBloom 2.4.23 (para la serie 2.4)```bash redis-cli MODULE UNLOAD bf redis-cli MODULE LOAD /path/to/new/redisbloom.so
root@kitploit:~
---

### CVE-2026-23631

| Atributo      | Valor                                                           |
| ------------- | --------------------------------------------------------------- |
| **Título**    | Use-After-Free en Lua mediante sincronización maestro-réplica   |
| **CVSS 4.0**  | **6.1 (MEDIO)**                                                 |
| **CWE**       | CWE-416 (Use After Free)                                        |
| **Vector**    | `AV:N/AC:H/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N`        |
| **Condición** | Autenticado + **réplica** con `replica-read-only` = **deshabilitado** |
| **Alcance**   | Todo Redis OSS/CE con scripting Lua, SOLO en réplicas           |
| **Nombre en clave** | "DarkReplica" (Yoni Shiraz, Wiz Zeroday Cloud)              |

#### Descripción técnica

Un atacante autenticado puede explotar el mecanismo de sincronización maestro-réplica para enviar scripts Lua especiales, desencadenando un use-after-free en el motor Lua de la réplica.

**Condición crítica:** El bug **solo afecta a las réplicas** configuradas con `replica-read-only disabled` (es decir, réplicas que pueden escribir). Esta NO es la configuración predeterminada: el valor por defecto de `replica-read-only` es `yes`.

Si la réplica está configurada en modo de solo lectura (predeterminado), la instancia **no se ve afectada**.

#### Señales de detección

- Caída de Redis en la réplica con un stack trace del motor Lua
- Configuración `replica-read-only` = `no` en la réplica
- Ejecución de comandos no identificados en la réplica
- Conexiones de red no autorizadas hacia la réplica

#### Métodos de mitigación (sin actualizar)

**Opción 1 — Habilitar replica-read-only (recomendado, es el valor predeterminado):**```bash
# Runtime
redis-cli CONFIG SET replica-read-only yes

# Trong redis.conf:
replica-read-only yes

Método 2 — Bloquear scripting de Lua mediante ACL:```bash redis-cli ACL SETUSER default -@scripting redis-cli ACL SETUSER default -eval -evalsha -script -function -fcall -fcall_ro redis-cli ACL SAVE

root@kitploit:~
**Método 3 — Deshabilitar comandos Lua (requiere reiniciar Redis):**```bash
# Thêm vào redis.conf:
rename-command EVAL ""
rename-command EVALSHA ""
rename-command SCRIPT ""
rename-command FUNCTION ""
rename-command FCALL ""
rename-command FCALL_RO ""

INSTRUCCIONES DE USO DEL SCRIPT

Principios de funcionamiento

  • Sin parámetros → muestra las instrucciones de uso (ayuda)
  • --scan → diagnóstico, verifica todos los CVE
  • --fix-... → aplica la medida de corrección para un CVE específico``` $ ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh → hiển thị banner + HELP + thoát
root@kitploit:~
### Requisitos del sistema

- **Sistema operativo:** Linux (Ubuntu, Debian, CentOS, RHEL, ...)
- **Herramienta:** `redis-cli` (normalmente incluida en el paquete `redis-tools` o `redis`)
- **Permisos:** Permiso de lectura/escritura del archivo `redis.conf` (para corregir)
- **Conexión:** Red hacia la instancia de Redis que se va a verificar

### Instalación de redis-cli (si aún no está disponible)```bash
# Ubuntu/Debian
sudo apt update && sudo apt install -y redis-tools

# CentOS/RHEL 7
sudo yum install -y redis

# CentOS/RHEL 8+/Fedora
sudo dnf install -y redis

# Hoặc từ source
wget https://download.redis.io/releases/redis-stable.tar.gz
tar xzf redis-stable.tar.gz
cd redis-stable && make redis-cli
sudo cp src/redis-cli /usr/local/bin/

Cómo usar

1. Ver la ayuda```bash

Cấp quyền thực thi

chmod +x CVE-2026-25589-25588-25243-23631-23479-REDIS.sh

Chạy không tham số → hiển thị help

./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh

Hoặc tường minh

./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --help

root@kitploit:~
#### 2. Escaneo completo de CVE (diagnóstico)```bash
# Local Redis
./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan

# Redis từ xa
./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan \
    -H 192.168.1.100 -p 6379 -a "your_password"

# Với ACL user
./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan \
    -H 10.0.0.50 -p 6380 -u admin -a "admin_password"

# Qua Unix socket
./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan \
    -s /var/run/redis/redis-server.sock

# Kèm xuất báo cáo
./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan \
    -o redis_cve_report_$(date +%Y%m%d).txt

3. Corrección individual de cada CVE```bash

Fix tung CVE cu the

./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-cve-23479 ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-cve-25243 -H 10.0.0.1 -a mypassword ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-cve-25588 ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-cve-25589 ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-cve-23631 -c /etc/redis/redis.conf

root@kitploit:~
#### 4. Corrección rápida por grupo (recomendado)```bash
# Chan RESTORE → bao ve 3/5 CVE (25243 + 25588 + 25589)
./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-restore

# Chan blocking commands → bao ve CVE-2026-23479
./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-blocking

# Chan Lua + bat replica-read-only → bao ve CVE-2026-23631
./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-lua

5. Solución completa```bash

Fix tat ca CVE (co backup config)

./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-all

Fix all voi file config rieng

./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-all
-c /etc/redis/redis.conf

Fix all khong backup (khong khuyen nghi)

./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-all --no-backup

Fix all Redis tu xa

./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --fix-all
-H 10.0.0.1 -p 6379 -a mypassword

root@kitploit:~
### Tabla de parámetros completa

#### Parámetros de acción (ACTION) — obligatorios

| Parámetro        | Función                                     | Número de CVE protegidos     |
| ---------------- | ------------------------------------------- | ---------------------------- |
| *(sin parámetro)*| Muestra las instrucciones de uso            | —                            |
| `--scan`         | Escaneo de diagnóstico de los 5 CVE         | —                            |
| `--fix-all`      | Corrige todos los CVE                       | **5/5**                      |
| `--fix-restore`  | **[Rápido]** Solo bloquea el comando RESTORE| **3/5** (25243, 25588, 25589)|
| `--fix-blocking` | **[Rápido]** Solo bloquea comandos bloqueantes | **1/5** (23479)            |
| `--fix-lua`      | **[Rápido]** Bloquea Lua + activa replica-read-only | **1/5** (23631)     |
| `--fix-cve-23479`| Corrige CVE-2026-23479                      | 1/5                          |
| `--fix-cve-25243`| Corrige CVE-2026-25243                      | 1/5                          |
| `--fix-cve-25588`| Corrige CVE-2026-25588                      | 1/5                          |
| `--fix-cve-25589`| Corrige CVE-2026-25589                      | 1/5                          |
| `--fix-cve-23631`| Corrige CVE-2026-23631                      | 1/5                          |

#### Parámetros de conexión

| Parámetro            | Descripción              | Valor predeterminado |
| -------------------- | ------------------------ | -------------------- |
| `-H, --host HOST`    | Dirección del host Redis | `127.0.0.1`          |
| `-p, --port PORT`    | Puerto de Redis          | `6379`               |
| `-a, --pass PASS`    | Contraseña de Redis      | *(vacío)*            |
| `-u, --user USER`    | Nombre de usuario ACL    | `default`            |
| `-s, --socket PATH`  | Ruta del socket Unix     | *(vacío)*            |

#### Parámetros adicionales

| Parámetro            | Descripción                               | Valor predeterminado       |
| -------------------- | ----------------------------------------- | -------------------------- |
| `-h, --help`         | Muestra la ayuda                          | —                          |
| `-c, --config FILE`  | Ruta de redis.conf                        | `/etc/redis/redis.conf`    |
| `-o, --output FILE`  | Escribe el informe en un archivo (solo con `--scan`) | *(vacío)*     |
| `--redis-cli PATH`   | Ruta del binario redis-cli                | `redis-cli` (desde PATH)   |
| `--no-backup`        | No hacer copia de seguridad de la config antes de modificar | `false` |

### Códigos de salida (Exit Codes)

| Código | Significado                                            |
| ------ | ------------------------------------------------------ |
| `0`    | Éxito — no se detectaron CVE o la corrección finalizó  |
| `1`    | Error: no se encontró redis-cli o no se pudo conectar  |
| `2`    | `--scan` detectó al menos 1 CVE — se requiere corrección |

### Resultado de salida al escanear (`--scan`)```
╔══════════════════════════════════════════════════════════════════════╗
║    REDIS CVE SCANNER & MITIGATION TOOL                               ║
╚══════════════════════════════════════════════════════════════════════╝

[*] THONG TIN REDIS INSTANCE
  Host:Port     : 127.0.0.1:6379
  Version       : 7.2.5
  Mode          : standalone
  Role          : master
  Modules       : timeseries bf

═══════════════════════════════════════════════════════════════════════
  [1/5] CVE-2026-23479 - Use-after-free trong Unblock Client Flow
        CVSS 7.7 (HIGH) | RCE
═══════════════════════════════════════════════════════════════════════
[✗] CO KHA NANG BI ANH HUONG - Redis 7.2.5 (can >= 7.2.14)

  ... (CVE 2-5 tuong tu)

╔══════════════════════════════════════════════════════════════════════╗
║                         TOM TAT KET QUA                              ║
╚══════════════════════════════════════════════════════════════════════╝
  [✗] CVE-2026-23479 - VULNERABLE
  [✗] CVE-2026-25243 - VULNERABLE
  [✗] CVE-2026-25588 - VULNERABLE
  [✗] CVE-2026-25589 - VULNERABLE
  [✓] CVE-2026-23631 - OK

  Ket qua: 1 PASS / 4 VULNERABLE

═══════════════════════════════════════════════════════════════════════
  [!] Phat hien 4 CVE. Su dung cac tuy chon --fix-... de khac phuc.
  VD: ./script.sh --fix-restore    # Chan RESTORE (3 CVE)
  VD: ./script.sh --fix-blocking   # Chan blocking (1 CVE)
  VD: ./script.sh --fix-lua        # Chan Lua (1 CVE)
  VD: ./script.sh --fix-all        # Khac phuc toan bo
═══════════════════════════════════════════════════════════════════════

Resultado de salida al corregir (--fix-restore)```

╔══════════════════════════════════════════════════════════════════════╗ ║ REDIS CVE SCANNER & MITIGATION TOOL ║ ╚══════════════════════════════════════════════════════════════════════╝

[*] THONG TIN REDIS INSTANCE Host:Port : 127.0.0.1:6379 Version : 7.2.5 ...

╔══════════════════════════════════════════════════════════════════════╗ ║ FIX NHANH: Chan RESTORE (CVE-2026-25243 + 25588 + 25589) ║ ╚══════════════════════════════════════════════════════════════════════╝ Bao ve 3/5 CVE chi voi 1 lenh chan RESTORE

[+] Da backup redis.conf toi: /etc/redis/redis.conf.cve-backup-20260508_120000 [*] Chan RESTORE qua ACL (khong can restart) => ACL SETUSER default -restore ... OK => ACL SAVE ... OK

[*] rename-command RESTORE "" (can restart) => Vo hieu hoa: rename-command RESTORE "" [!] CAN RESTART REDIS de rename-command co hieu luc

[✓] Da chan RESTORE. Cac CVE duoc bao ve:

  • CVE-2026-25243 (RESTORE double-free/OOB)
  • CVE-2026-25588 (RESTORE + RedisTimeSeries)
  • CVE-2026-25589 (RESTORE + RedisBloom)
root@kitploit:~
---

## MÉTODOS GENERALES DE MITIGACIÓN

### Método 1: ACL (Redis >= 6.0) — RECOMENDADO

Este es el método **más seguro y flexible**, no requiere reiniciar Redis.```bash
# Tao ACL user an toan cho ung dung
redis-cli ACL SETUSER app_user on >StrongPassword123 ~* \
    +@read \           # Quyen doc du lieu
    +@write \          # Quyen ghi du lieu
    -@dangerous \      # CHAN tat ca lenh nguy hiem (gồm RESTORE)
    -@admin \          # CHAN lenh quan tri
    -@scripting \      # CHAN Lua scripting
    -@blocking \       # CHAN blocking commands
    -@keyspace \       # CHAN keyspace notifications
    -@pubsub           # CHAN pub/sub (neu khong dung)

# Vo hieu hoa default user
redis-cli ACL SETUSER default off

# Luu ACL vinh vien
redis-cli ACL SAVE

Método 2: rename-command — Requiere reiniciar Redis

Agrega las siguientes líneas a redis.conf:```conf

Vo hieu hoa RESTORE (CVE-2026-25243, 25588, 25589)

rename-command RESTORE ""

Vo hieu hoa blocking commands (CVE-2026-23479)

rename-command BLPOP "" rename-command BRPOP "" rename-command BRPOPLPUSH "" rename-command BLMOVE "" rename-command BLMPOP "" rename-command BZPOPMIN "" rename-command BZPOPMAX "" rename-command BZMPOP "" rename-command XREAD "" rename-command XREADGROUP ""

Vo hieu hoa Lua commands (CVE-2026-23631)

rename-command EVAL "" rename-command EVALSHA "" rename-command SCRIPT "" rename-command FUNCTION "" rename-command FCALL "" rename-command FCALL_RO ""

root@kitploit:~
Después reinicia Redis:```bash
sudo systemctl restart redis-server
# hoặc
sudo service redis-server restart

Método 3: Configuración de red + Firewall```bash

Trong redis.conf:

protected-mode yes bind 127.0.0.1 192.168.1.10 # Chi lang nghe IP tin cay

iptables — chi cho phep IP noi bo

iptables -A INPUT -p tcp --dport 6379 -s 127.0.0.1 -j ACCEPT iptables -A INPUT -p tcp --dport 6379 -s 10.0.0.0/8 -j ACCEPT iptables -A INPUT -p tcp --dport 6379 -j DROP

Luu iptables

iptables-save > /etc/iptables/rules.v4

root@kitploit:~
### Método 4: Ejecutar Redis con privilegios mínimos```bash
# Tao user redis khong co shell
sudo useradd -r -s /bin/false redis

# Chown thu muc Redis
sudo chown -R redis:redis /var/lib/redis
sudo chown -R redis:redis /etc/redis

# Chay Redis duoi user redis
sudo -u redis redis-server /etc/redis/redis.conf

Método 5: Eliminar módulos innecesarios```bash

Kiem tra module dang nap

redis-cli MODULE LIST

Go bo module khong can thiet

redis-cli MODULE UNLOAD timeseries # CVE-2026-25588 redis-cli MODULE UNLOAD bf # CVE-2026-25589

Xoa loadmodule khoi redis.conf

Tim va xoa dong:

loadmodule /path/to/redistimeseries.so

loadmodule /path/to/redisbloom.so

root@kitploit:~
---

## EVALUACIÓN DE RIESGOS — SISTEMA REDIS INTERNO / SENTINEL

Esta sección está destinada a clústeres de **Redis Sentinel** o Redis independiente que se ejecutan en una red interna, protegidos por firewall (Fortinet, iptables, etc.) y **sin conexión directa a Internet**.

### Resumen

| Nivel de protección existente           | ¿Mitiga el riesgo?                                             | ¿Se necesita una actualización?                         |
| --------------------------------------- | -------------------------------------------------------------- | ------------------------------------------------------ |
| Sin acceso a Internet                   | **Sí** — elimina a los atacantes externos                      | No es urgente                                          |
| Fortinet Firewall (con IPS/DPI)         | **Sí** — filtra IP de origen, el IPS puede detectar payloads anómalos | No es urgente                                          |
| iptables (IP de origen limitadas)       | **Sí** — solo las IP permitidas pueden conectarse al puerto de Redis | No es urgente                                          |
| **Combinación de las 3 medidas anteriores** | **Reduce la probabilidad de explotación a un nivel muy bajo**  | **No es urgente, pero se debe tener un plan**          |

### Punto clave: ¿Por qué el firewall no es suficiente?

Las 5 CVE tienen algo en común: el atacante debe **ya estar autenticado** con Redis (PR:L — Privilegios Requeridos: Bajo en el vector CVSS). El firewall bloquea conexiones desde IP no permitidas, pero **no protege** contra las siguientes amenazas:

| Amenaza                                                                                                             | Probabilidad de ocurrencia      | Consecuencias si se explota                                                       |
| ------------------------------------------------------------------------------------------------------------------- | ------------------------------- | --------------------------------------------------------------------------------- |
| **Empleado interno malintencionado** — con acceso a la red interna + conocimiento de la contraseña de Redis         | Baja pero no se puede descartar | **RCE** en el servidor Redis, escalada de privilegios, robo de datos              |
| **Máquina interna comprometida (Movimiento Lateral)** — el atacante compromete cualquier máquina de la red y desde allí ataca Redis | Media                           | Todos los datos de Redis son robados/modificados/eliminados; el atacante puede instalar una puerta trasera |
| **Error de configuración del firewall** — apertura accidental del puerto de Redis hacia el exterior por un cambio de reglas incorrecto | Baja                            | Equivalente a exponerlo directamente a Internet                                   |
| **Cadena de suministro / Terceros** — socios o proveedores con conexión VPN a la red interna                       | Baja                            | RCE, exfiltración de datos                                                        |
| **Vulnerabilidad en el propio firewall/red** — el atacante evade el firewall a través de otra vulnerabilidad        | Muy baja                        | Todo el sistema interno se ve afectado                                            |

### Análisis de riesgo cuantitativo```
Rủi ro = Xác suất khai thác × Hậu quả

Với firewall + air-gap:
  = (RẤT THẤP: 0.5% - 2%/năm) × (NGHIÊM TRỌNG: RCE toàn hệ thống, mất toàn bộ dữ liệu)
  = RỦI RO TRUNG BÌNH — vẫn đáng quan tâm

Mô hình mối đe dọa cụ thể cho cụm Sentinel

Cụm Redis Sentinel có thêm rủi ro riêng:

Vector tấn công SentinelMô tảCVE liên quan
Chiếm quyền Sentinel — attacker chiếm Sentinel node, từ đó failover sang replica độc hạiSentinel giao tiếp qua port riêng (thường 26379), nếu không được bảo vệ riêngCVE-2026-23631 (nếu replica có replica-read-only no)
Replica promotion — replica bị chiếm được promote thành masterDữ liệu toàn cụm bị thay đổiToàn bộ CVE RESTORE (25243, 25588, 25589)
Đồng bộ master-replica — attacker chặn luồng syncDữ liệu bị đánh cắp trong quá trình syncCVE-2026-23631

Khuyến nghị theo mức độ ưu tiên

Ưu tiênHành độngThời gian thực hiệnCần downtime?
P0 — NgayChạy script kiểm tra tất cả node (master + replica + sentinel): ./CVE-...sh -H <ip> -p <port> -a <pass>2-5 phút / nodeKhông
P0 — NgayKiểm tra replica-read-only yes trên tất cả replica: redis-cli CONFIG GET replica-read-only1 phút / nodeKhông
P1 — Trong tuầnChặn RESTORE qua ACL (không cần restart): redis-cli ACL SETUSER default -restore; redis-cli ACL SAVE2 phút / nodeKhông
P1 — Trong tuầnChặn @blocking commands qua ACL (CVE-2026-23479)2 phút / nodeKhông
P1 — Trong tuầnChặn @scripting commands qua ACL nếu không dùng Lua (CVE-2026-23631)2 phút / nodeKhông
P2 — Maintenance window tớiThêm rename-command RESTORE "", rename-command EVAL "", ... vào redis.conf10 phút (có restart)Có (restart Redis)
P2 — Maintenance window tớiNâng cấp Redis lên phiên bản đã vá (6.2.22, 7.2.14, 7.4.9, 8.2.6, 8.4.3, 8.6.3)30-60 phút / cụmCó (restart toàn cụm)

Ví dụ: Bảo vệ toàn bộ cụm Sentinel bằng ACL (không downtime)```bash

============================================

Chay tren TUNG node Redis (master + replica)

============================================

1. Tao ACL user an toan cho ung dung

redis-cli -h <node_ip> -p 6379 -a ACL SETUSER app_user on >StrongPass123 ~*
+@read +@write
-@dangerous -@admin -@scripting -@blocking
-restore -debug

2. Vo hieu hoa default user

redis-cli -h <node_ip> -p 6379 -a ACL SETUSER default off

3. Luu ACL

redis-cli -h <node_ip> -p 6379 -a ACL SAVE

4. Kiem tra lai

redis-cli -h <node_ip> -p 6379 -a --user app_user --pass StrongPass123 PING

root@kitploit:~

Các tính năng chính

  • Phát hiện mối đe dọa theo thời gian thực: Giám sát liên tục lưu lượng mạng và nhật ký hệ thống để xác định các hoạt động đáng ngờ ngay khi chúng xảy ra.
  • Phân tích hành vi: Sử dụng các thuật toán học máy để thiết lập đường cơ sở hành vi bình thường và phát hiện các sai lệch có thể chỉ ra một cuộc tấn công.
  • Phản hồi tự động: Kích hoạt các hành động phản hồi được cấu hình sẵn, chẳng hạn như chặn địa chỉ IP, cách ly máy chủ bị xâm phạm hoặc gửi cảnh báo cho nhóm bảo mật.
  • Bảng điều khiển trực quan: Cung cấp giao diện web thân thiện với người dùng để xem các sự kiện bảo mật, xu hướng và báo cáo chi tiết.
  • Tích hợp liền mạch: Hỗ trợ tích hợp với các công cụ SIEM phổ biến, nền tảng quản lý mối đe dọa và API tùy chỉnh.
  • Kiến trúc có khả năng mở rộng: Được thiết kế để xử lý các môi trường quy mô lớn với khả năng xử lý phân tán và cân bằng tải.

Cài đặt

Để cài đặt công cụ, hãy làm theo các bước sau:

root@kitploit:~
git clone https://github.com/example/security-tool.git
cd security-tool
pip install -r requirements.txt
python setup.py install

Cấu hình

Sau khi cài đặt, bạn cần cấu hình công cụ bằng cách chỉnh sửa tệp config.yaml:

root@kitploit:~
# Cấu hình mạng
network:
  interface: eth0
  capture_buffer_size: 65536

# Cấu hình phát hiện
detection:
  threshold: 0.85
  model_path: /path/to/model.pkl

# Cấu hình cảnh báo
alerts:
  email:
    enabled: true
    smtp_server: smtp.example.com
    recipients:
      - [email protected]

Sử dụng

Để bắt đầu giám sát, hãy chạy lệnh sau:

root@kitploit:~
python main.py --config config.yaml

Bạn có thể sử dụng các tùy chọn dòng lệnh sau:

  • --config: Đường dẫn đến tệp cấu hình (mặc định: config.yaml)
  • --verbose: Bật đầu ra chi tiết
  • --daemon: Chạy ở chế độ nền

Đóng góp

Chúng tôi hoan nghênh các đóng góp từ cộng đồng! Vui lòng đọc HƯỚNG DẪN ĐÓNG GÓP trước khi gửi yêu cầu kéo.

Giấy phép

Dự án này được cấp phép theo Giấy phép MIT - xem tệp LICENSE để biết chi tiết.

root@kitploit:~
# ============================================
# Chay tren TUNG node Sentinel (port 26379)
# ============================================

# Sentinel thuong khong can RESTORE/EVAL — chan toan bo lenh nguy hiem
redis-cli -h <sentinel_ip> -p 26379 -a <sentinel_pass> ACL SETUSER default \
    -@dangerous -@admin -@scripting -@blocking -restore

redis-cli -h <sentinel_ip> -p 26379 -a <sentinel_pass> ACL SAVE
```
### Flujo de decisión: ¿Es necesario actualizar de inmediato?```
Hệ thống Redis của bạn có public-facing không?
├── CÓ → NÂNG CẤP NGAY hoặc áp dụng workaround TRONG 24H
└── KHÔNG (nội bộ / air-gapped)
    ├── Có dùng Lua scripting (EVAL/EVALSHA)?
    │   ├── CÓ → CVE-2026-23631: Kiểm tra replica-read-only, chặn @scripting qua ACL
    │   └── KHÔNG → Rủi ro thấp hơn
    ├── Có dùng RedisTimeSeries hoặc RedisBloom module?
    │   ├── CÓ → CVE-2026-25588/25589: Chặn RESTORE qua ACL, nâng cấp module
    │   └── KHÔNG → Không bị ảnh hưởng bởi 25588/25589
    ├── Có dùng blocking commands (BLPOP, XREAD, ...)?
    │   ├── CÓ → CVE-2026-23479: Chặn @blocking qua ACL hoặc rename-command
    │   └── KHÔNG → Chặn @blocking để an toàn (không ảnh hưởng)
    └── KẾT LUẬN:
        ├── Áp dụng ACL workaround NGAY TRONG TUẦN (không downtime)
        └── Lên kế hoạch nâng cấp TRONG MAINTENANCE WINDOW TIẾP THEO
```
### Conclusión

> **Firewall + aislamiento de red reducen la probabilidad de explotación a un nivel muy bajo, pero la consecuencia si se explota sigue siendo RCE en todo el sistema.** Con un costo de mitigación casi nulo (agregar unas líneas de ACL sin necesidad de reiniciar), aplicar la medida de protección es una decisión favorable en términos de gestión de riesgos. **No hay necesidad de entrar en pánico y actualizar de inmediato**, pero **se recomienda aplicar el workaround de ACL esta semana** y programar la actualización en la próxima ventana de mantenimiento.

---

## REFERENCIA DE ACL

### Grupos de comandos (command categories) importantes

| Grupo         | Descripción                                                                          | Impacto CVE                |
| ------------- | ------------------------------------------------------------------------------------ | -------------------------- |
| `@dangerous`  | Comandos peligrosos (incluye RESTORE, FLUSHDB, FLUSHALL, KEYS, SHUTDOWN, DEBUG, CONFIG) | CVE-2026-25243, 25588, 25589 |
| `@blocking`   | Comandos de bloqueo (BLPOP, BRPOP, BZPOPMIN, XREAD, WAIT, ...)                        | CVE-2026-23479             |
| `@scripting`  | Scripting Lua (EVAL, EVALSHA, SCRIPT, FUNCTION, FCALL)                                | CVE-2026-23631             |
| `@admin`      | Comandos de administración (CONFIG, ACL, CLIENT, CLUSTER, MONITOR, SHUTDOWN, ...)     | Protección general         |
| `@keyspace`   | Comandos relacionados con keyspace (KEYS, SCAN, FLUSHDB, FLUSHALL, ...)               | Protección general         |
| `@read`       | Comandos de lectura de datos (GET, HGET, LRANGE, SMEMBERS, ZRANGE, ...)               | Seguro                     |
| `@write`      | Comandos de escritura de datos (SET, HSET, LPUSH, SADD, ZADD, ...)                    | Seguro                     |

### Ejemplo de configuración ACL completa```bash
# 1. Tao admin user (day du quyen)
redis-cli ACL SETUSER admin on >AdminPass123 ~* +@all

# 2. Tao app user (quyen gioi han)
redis-cli ACL SETUSER app on >AppPass123 ~* \
    +@read \
    +@write \
    -@dangerous \
    -@admin \
    -@scripting \
    -@blocking \
    -restore \
    -debug

# 3. Tao readonly user (chi doc)
redis-cli ACL SETUSER reader on >ReaderPass123 ~* \
    +@read \
    -@dangerous \
    -@admin \
    -@scripting

# 4. Vo hieu hoa default user
redis-cli ACL SETUSER default off

# 5. Luu ACL
redis-cli ACL SAVE

# 6. Kiem tra ACL
redis-cli ACL LIST
```
### Verificación efectiva de ACL```bash
# Liet ke tat ca ACL rules
redis-cli ACL LIST

# Kiem tra quyen cua mot user
redis-cli ACL GETUSER app

# Kiem tra user hien tai
redis-cli ACL WHOAMI

# Xem log vi pham ACL
redis-cli ACL LOG
```
---

## PROCESO DE PRUEBAS PERIÓDICAS

### 1. Prueba única (ad-hoc)```bash
./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan \
    -H <redis_host> -p <port> -a <password> \
    -o report_$(date +%Y%m%d_%H%M%S).txt
```
### 2. Verificación masiva de múltiples instancias de Redis

Cree el archivo `redis_hosts.txt`:```
# Format: host:port:password:user
10.0.0.1:6379:pass1:default
10.0.0.2:6379:pass2:default
10.0.0.3:6380:pass3:admin
```
Script de verificación masiva:```bash
#!/bin/bash
# File: batch_check.sh

BATCH_RESULT="batch_result_$(date +%Y%m%d_%H%M%S).txt"

while IFS=':' read -r host port pass user; do
    [[ "$host" =~ ^#.* ]] && continue  # Bo qua comment
    [[ -z "$host" ]] && continue        # Bo qua dong trong

    echo "============================================" | tee -a "$BATCH_RESULT"
    echo "Kiem tra: $host:$port" | tee -a "$BATCH_RESULT"
    echo "============================================" | tee -a "$BATCH_RESULT"

    ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan \
        -H "$host" -p "${port:-6379}" \
        -a "${pass:-}" -u "${user:-default}" \
        2>&1 | tee -a "$BATCH_RESULT"

    echo "" | tee -a "$BATCH_RESULT"
done < redis_hosts.txt

echo "Bao cao tong hop: $BATCH_RESULT"
```
### 3. Integración en cron (verificación diaria)```bash
# Them vao crontab (chay hang ngay luc 7:00 AM)
0 7 * * * /opt/scripts/CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan \
    -H 127.0.0.1 -p 6379 -a mypassword \
    -o /var/log/redis/cve_report_$(date +\%Y\%m\%d).txt \
    > /dev/null 2>&1
```
### 4. Integración en el pipeline de CI/CD```yaml
# GitLab CI example
redis-security-scan:
  stage: security
  image: redis:7-alpine
  script:
    - chmod +x CVE-2026-25589-25588-25243-23631-23479-REDIS.sh
    - ./CVE-2026-25589-25588-25243-23631-23479-REDIS.sh --scan \
        -H $REDIS_HOST -p $REDIS_PORT -a $REDIS_PASS \
        -o cve_report.txt
  artifacts:
    paths:
      - cve_report.txt
    when: always
  allow_failure: true
```
---

## PREGUNTAS FRECUENTES (FAQ)

### P: ¿Necesito reiniciar Redis después de aplicar `--fix-...`?

**R:** Sí, para los cambios de `rename-command` — solo surten efecto después de reiniciar Redis. Los cambios mediante `CONFIG SET` (como `protected-mode`, `replica-read-only`) surten efecto de inmediato. Los cambios mediante `ACL SETUSER` + `ACL SAVE` surten efecto de inmediato, **sin necesidad de reiniciar**. Si solo se usa ACL (`--fix-restore`, `--fix-blocking`, `--fix-lua`), no necesita reiniciar. El script siempre aplica simultáneamente tanto ACL (en tiempo de ejecución) como rename-command (requiere reinicio) para una protección en múltiples capas.

### P: ¿Bloquear RESTORE afecta el funcionamiento normal?

**R:** El comando `RESTORE` normalmente solo se usa en los siguientes casos:

- Recuperación de datos desde una copia de seguridad
- Migración de datos entre instancias
- Sincronización de datos personalizada

Si su aplicación no usa RESTORE, bloquear este comando es seguro. Si lo usa, cree un usuario ACL separado con permiso de RESTORE y úselo solo con fines administrativos.

### P: Estoy usando Redis < 6.0, ACL no está disponible. ¿Qué hago?

**R:** Con Redis < 6.0, solo puede usar `rename-command` para deshabilitar comandos. Los pasos:

1. Agregue `rename-command RESTORE ""` a redis.conf
2. Agregue los comandos `rename-command` para los comandos de bloqueo
3. Active `protected-mode yes`
4. Configure `requirepass` con una contraseña segura
5. Limite las conexiones mediante el firewall
6. Reinicie Redis

### P: ¿Cómo saber si los módulos RedisTimeSeries/RedisBloom están cargados?

**R:** Ejecute el comando:```bash
redis-cli MODULE LIST
```
La salida mostrará la lista de módulos cargados con su versión. Si no ves `timeseries` o `bf`, el módulo no está cargado.

### P: ¿`--fix-all` / `--fix-restore` / `--fix-...` son seguros para producción?

**R:** Los comandos fix realizan cambios seguros:

- Se hace backup de redis.conf antes de modificar (salvo que se use `--no-backup`)
- **ACL** (`-restore`, `-@blocking`, `-@scripting`): tienen efecto inmediato, sin downtime, fáciles de revertir
- **rename-command**: requiere reiniciar Redis para que tenga efecto
- **CONFIG SET**: en runtime, se pierde al reiniciar si no se ha escrito en redis.conf

Recomendación: Para producción, prioriza usar `--fix-restore`, `--fix-blocking`, `--fix-lua` primero (solo ACL, sin necesidad de reiniciar). Luego programa una ventana de mantenimiento para reiniciar con `rename-command`.

### P: ¿Cómo deshacer (rollback) los cambios de `--fix-...`?

**R:**

1. Si se hizo backup: copia el archivo de backup sobre redis.conf y luego reinicia Redis
2. Si se usó `CONFIG SET`: reiniciar Redis restaurará la configuración desde el archivo
3. Si se usó `ACL SETUSER`: usa `ACL SETUSER <user> +<cmd>` para restaurar los permisos

### P: ¿Debería actualizar Redis?

**R:** **Sí, si es posible.** Actualizar a una versión parcheada es la solución más definitiva. Este script está pensado para los casos en los que:

- No se puede actualizar de inmediato por restricciones de la aplicación
- Se necesita tiempo para probar la nueva versión
- Se necesita una medida de protección temporal mientras se espera la ventana de mantenimiento

### P: Redis corre internamente, sin acceso a Internet, con firewall de protección — ¿es necesario actualizar?

**R:** **No es necesario actualizar con urgencia**, pero **se recomienda aplicar el workaround y tener un plan de actualización** porque:

- El firewall solo reduce la **probabilidad** de ser atacado, no elimina por completo el riesgo
- Un atacante desde dentro de la red interna (empleado malintencionado, máquina comprometida, movimiento lateral) aún puede explotar la vulnerabilidad
- La consecuencia si se explota es **RCE en todo el sistema** — el nivel de gravedad más alto
- **El coste del workaround es muy bajo**: añadir ACL `-restore -@blocking -@scripting` toma 2 minutos, sin downtime

**Hoja de ruta recomendada:**

1. **Esta semana:** Aplicar el workaround de ACL (sin downtime)
2. **Próxima ventana de mantenimiento:** Actualizar Redis + añadir `rename-command`

Ver detalles en [Evaluación de riesgos — Sistema Redis interno / Sentinel](#evaluación-de-riesgos--sistema-redis-interno--sentinel).

---

## REFERENCIAS

- [Aviso de seguridad oficial de Redis](https://redis.io/blog/security-advisory-cve202623479-cve202625243-cve-2026-25588-cve202625589-cve-2026-23631/)
- [GitHub Advisory — CVE-2026-25243 (RESTORE RCE)](https://github.com/redis/redis/security/advisories/GHSA-c8h9-259x-jff4)
- [GitHub Advisory — CVE-2026-23631 (Lua UAF)](https://github.com/redis/redis/security/advisories/GHSA-8ghh-qpmp-7826)
- [Documentación de ACL de Redis](https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl/)
- [Documentación de rename-command de Redis](https://redis.io/docs/latest/operate/oss_and_stack/management/security/#disable-specific-commands)
- [NVD — CVE-2026-25243](https://nvd.nist.gov/vuln/detail/CVE-2026-25243)
- [NVD — CVE-2026-25588](https://nvd.nist.gov/vuln/detail/CVE-2026-25588)
- [OpenCVE — CVE-2026-23479](https://app.opencve.io/cve/CVE-2026-23479)
- [Tenable — CVE-2026-23631](https://www.tenable.com/cve/CVE-2026-23631)

---

> **Aviso legal:** Este documento se ha elaborado basándose en información pública del aviso de seguridad de Redis y fuentes de NVD. El usuario es responsable de verificar y confirmar las medidas de mitigación adecuadas para su entorno antes de aplicarlas.
Descargar herramienta