
Script de diagnóstico e remediação para cinco CVEs do Redis, fornecendo varredura, mitigação baseada em ACL e orientação de endurecimento de configuração para vulnerabilidades de RCE autenticado.
Data de publicação: 2026-05-08 Autor: TonyCao ([email protected]) Fonte: Redis Security Advisory
Em 05/05/2026, a Redis Ltd. publicou um security advisory sobre 5 vulnerabilidades de segurança graves que afetam todas as versões do Redis OSS/CE. Todas as CVEs podem levar a Remote Code Execution (RCE) se forem exploradas com sucesso.
| # | Código CVE | CVSS | Nível | Tipo de falha | Condição de exploração |
|---|---|---|---|---|---|
| 1 | CVE-2026-23479 | 7.7 | ALTO | Use-After-Free | Autenticado, com permissão para executar comandos de bloqueio |
| 2 | CVE-2026-25243 | 7.7 | ALTO | Invalid Memory Access | Autenticado, com permissão para executar RESTORE |
| 3 | CVE-2026-25588 | 7.7 | ALTO | Invalid Memory Access | Autenticado, com permissão de RESTORE + módulo RedisTimeSeries |
| 4 | CVE-2026-25589 | 7.7 | ALTO | Invalid Memory Access | Autenticado, com permissão de RESTORE + módulo RedisBloom |
| 5 | CVE-2026-23631 | 6.1 | MÉDIO | Use-After-Free | Autenticado, réplica com replica-read-only = desabilitado |
Ponto em comum: Todas as CVEs exigem que o atacante esteja autenticado na instância Redis. A CVE-2026-23631 afeta apenas réplicas com a configuração
replica-read-only disabled.
| Linha de versão | Versão corrigida (mínima) |
|---|---|
| 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 |
| Módulo | Versão mínima |
|---|---|
| RedisTimeSeries | 1.12.14 / 1.10.24 / 1.8.23 |
| RedisBloom | 2.8.20 / 2.6.28 / 2.4.23 |
| Versão | 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 |
Todas as implantações do Redis Cloud foram automaticamente corrigidas no momento da publicação do advisory.
| Atributo | Valor |
|---|---|
| Título | Use-After-Free no Unblock Client Flow |
| CVSS 4.0 | 7.7 (ALTO) |
| CWE | CWE-416 (Use After Free) |
| Vetor | AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| Condição | Atacante autenticado, com permissão para executar comandos de bloqueio |
| Escopo | Todos os Redis OSS/CE, Redis Software <= 8.0.6 |
Quando um cliente está bloqueado — por exemplo, aguardando em BLPOP — e é removido durante a reexecução do comando bloqueado, a função processCommandAndResetClient pode retornar um erro. O código atual não trata corretamente esse caso, resultando em um ponteiro que referencia memória já liberada (use-after-free). O atacante pode explorar o UAF para executar código remotamente (RCE).
unblock client, processCommandAndResetClientredis-server executa comandos não identificadosBLPOP, BRPOP, BRPOPLPUSH, BLMOVE, BLMPOP, BZPOPMIN, BZPOPMAX, BZMPOP, WAIT, WAITAOF, XREAD, XREADGROUP
#### Método de correção (sem atualização)
**Opção 1 — Bloquear via 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 — Desativar via rename-command (requer reiniciar o 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 ""
**Método 3 — Ativar o protected-mode e limitar conexões:**```bash
redis-cli CONFIG SET protected-mode yes
# Trong redis.conf:
protected-mode yes
bind 127.0.0.1
| Atributo | Valor |
|---|---|
| Título | Acesso Inválido à Memória no Comando RESTORE |
| CVSS 4.0 | 7.7 (ALTO) |
| CWE | CWE-20 (Validação de Entrada Incorreta) + CWE-122 (Estouro de Buffer no Heap) |
| Vetor | AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| Condição | Atacante autenticado, com permissão para executar RESTORE |
| Escopo | Todos os Redis OSS/CE, Redis Software <= 8.0.6 |
A vulnerabilidade envolve 2 subproblemas:
Um atacante autenticado envia um payload RESTORE projetado especificamente para explorar os erros acima, o que pode levar a RCE no contexto do processo redis-server.