
Script diagnostico e di remediation per cinque CVE Redis, che fornisce scansione, mitigazione basata su ACL e guida all'hardening della configurazione per vulnerabilità RCE autenticate.
Data di rilascio: 2026-05-08 Autore: TonyCao ([email protected]) Fonte: Redis Security Advisory
Il 05/05/2026, Redis Ltd. ha pubblicato un security advisory relativo a 5 vulnerabilità di sicurezza critiche che interessano tutte le versioni di Redis OSS/CE. Tutte le CVE possono portare a Remote Code Execution (RCE) se sfruttate con successo.
| # | Codice CVE | CVSS | Livello | Tipo di errore | Condizioni di sfruttamento |
|---|---|---|---|---|---|
| 1 | CVE-2026-23479 | 7.7 | HIGH | Use-After-Free | Autenticato, con permessi per eseguire comandi bloccanti |
| 2 | CVE-2026-25243 | 7.7 | HIGH | Accesso alla memoria non valido | Autenticato, con permessi per eseguire RESTORE |
| 3 | CVE-2026-25588 | 7.7 | HIGH | Accesso alla memoria non valido | Autenticato, con permessi RESTORE + modulo RedisTimeSeries |
| 4 | CVE-2026-25589 | 7.7 | HIGH | Accesso alla memoria non valido | Autenticato, con permessi RESTORE + modulo RedisBloom |
| 5 | CVE-2026-23631 | 6.1 | MEDIUM | Use-After-Free | Autenticato, replica con replica-read-only = disabilitato |
Punto comune: Tutte le CVE richiedono che l'attaccante sia già autenticato sull'istanza Redis. La CVE-2026-23631 interessa solo le repliche con configurazione
replica-read-only disabled.
| Linea di versione | Versione patchata (minima) |
|---|---|
| 6.2.x | 6.2.22 |
| 7.2.x | 7.2.14 |
| 7.4.x | 7.4.9 |
| 8.2.x | 8.2.6 |
| 8.4.x | 8.4.3 |
| 8.6.x | 8.6.3 |
| Modulo | Versione minima |
|---|---|
| RedisTimeSeries | 1.12.14 / 1.10.24 / 1.8.23 |
| RedisBloom | 2.8.20 / 2.6.28 / 2.4.23 |
| Versione | Patch |
|---|---|
| 8.0.6 | 8.0.10-64 |
| 7.22.2 | 7.22.2-79 |
| 7.8.6 | 7.8.6-253 |
| 7.4.6 | 7.4.6-279 |
| 7.2.4 | 7.2.4-153 |
Tutte le distribuzioni Redis Cloud sono state patchate automaticamente al momento della pubblicazione dell'advisory.
| Attributo | Valore |
|---|---|
| Titolo | Use-After-Free nel flusso di sblocco client |
| CVSS 4.0 | 7.7 (HIGH) |
| CWE | CWE-416 (Use After Free) |
| Vector | AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| Condizioni | Attaccante autenticato, con permessi per eseguire comandi bloccanti |
| Ambito | Tutte le versioni Redis OSS/CE, Redis Software <= 8.0.6 |
Quando un client è bloccato — ad esempio in attesa in BLPOP — e viene rimosso durante la riesecuzione del comando bloccato, la funzione processCommandAndResetClient può restituire un errore. Il codice attuale non gestisce correttamente questo caso, portando a un puntatore che fa riferimento a memoria già liberata (use-after-free). L'attaccante può sfruttare la UAF per eseguire codice da remoto (RCE).
unblock client, processCommandAndResetClientredis-server esegue comandi non identificatiBLPOP, BRPOP, BRPOPLPUSH, BLMOVE, BLMPOP, BZPOPMIN, BZPOPMAX, BZMPOP, WAIT, WAITAOF, XREAD, XREADGROUP
#### Metodo di mitigazione (senza aggiornamento)
**Metodo 1 — Blocco tramite ACL (consigliato):**```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
Metodo 2 — Disabilitazione tramite rename-command (richiede il riavvio di Redis):```bash
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 ""
**Metodo 3 — Attiva la protected-mode e limita le connessioni:**```bash
redis-cli CONFIG SET protected-mode yes
# Trong redis.conf:
protected-mode yes
bind 127.0.0.1
| Proprietà | Valore |
|---|---|
| Titolo | Accesso alla memoria non valido nel comando RESTORE |
| CVSS 4.0 | 7.7 (ALTO) |
| CWE | CWE-20 (Convalida dell'input impropria) + CWE-122 (Overflow del buffer heap) |
| Vettore | AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| Condizione | Attaccante autenticato, con permesso di eseguire RESTORE |
| Ambito | Tutte le versioni Redis OSS/CE, Redis Software <= 8.0.6 |
La vulnerabilità comprende 2 sotto-problemi:
Un attaccante autenticato invia un payload RESTORE appositamente progettato per sfruttare i difetti sopra descritti, che può portare a RCE nel contesto del processo redis-server.