
Script de diagnostic et de remédiation pour cinq CVE Redis, fournissant une analyse, une atténuation basée sur les ACL et des conseils de durcissement de configuration pour les vulnérabilités RCE authentifiées.
Date de publication : 2026-05-08 Auteur : TonyCao ([email protected]) Source : Redis Security Advisory
Le 05/05/2026, Redis Ltd. a publié un avis de sécurité concernant 5 vulnérabilités de sécurité critiques affectant toutes les versions de Redis OSS/CE. Toutes les CVE peuvent conduire à une exécution de code à distance (RCE) si elles sont exploitées avec succès.
| # | Code CVE | CVSS | Niveau | Type de faille | Conditions d'exploitation |
|---|---|---|---|---|---|
| 1 | CVE-2026-23479 | 7.7 | ÉLEVÉ | Use-After-Free | Authentifié, autorisé à exécuter des commandes bloquantes |
| 2 | CVE-2026-25243 | 7.7 | ÉLEVÉ | Accès mémoire invalide | Authentifié, autorisé à exécuter RESTORE |
| 3 | CVE-2026-25588 | 7.7 | ÉLEVÉ | Accès mémoire invalide | Authentifié, autorisé à RESTORE + module RedisTimeSeries |
| 4 | CVE-2026-25589 | 7.7 | ÉLEVÉ | Accès mémoire invalide | Authentifié, autorisé à RESTORE + module RedisBloom |
| 5 | CVE-2026-23631 | 6.1 | MOYEN | Use-After-Free | Authentifié, réplica avec replica-read-only = désactivé |
Point commun : Toutes les CVE exigent que l'attaquant soit authentifié auprès de l'instance Redis. La CVE-2026-23631 n'affecte que les réplicas ayant la configuration
replica-read-only disabled.
| Ligne de version | Version corrigée (minimale) |
|---|---|
| 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 |
| Module | Version minimale |
|---|---|
| RedisTimeSeries | 1.12.14 / 1.10.24 / 1.8.23 |
| RedisBloom | 2.8.20 / 2.6.28 / 2.4.23 |
| Version | Correctif |
|---|---|
| 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 |
Tous les déploiements Redis Cloud ont été automatiquement corrigés au moment de la publication de l'avis.
| Attribut | Valeur |
|---|---|
| Titre | Use-After-Free dans le flux de déblocage client |
| CVSS 4.0 | 7.7 (ÉLEVÉ) |
| CWE | CWE-416 (Use After Free) |
| Vecteur | AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| Condition | Attaquant authentifié, autorisé à exécuter des commandes bloquantes |
| Portée | Tous les Redis OSS/CE, Redis Software <= 8.0.6 |
Lorsqu'un client bloqué — par exemple en attente dans BLPOP — est expulsé pendant la ré-exécution de la commande bloquée, la fonction processCommandAndResetClient peut renvoyer une erreur. Le code actuel ne gère pas correctement ce cas, ce qui conduit à un pointeur référençant une zone mémoire déjà libérée (use-after-free). Un attaquant peut exploiter l'UAF pour exécuter du code à distance (RCE).
unblock client, processCommandAndResetClientredis-server exécute des commandes non identifiéesBLPOP, BRPOP, BRPOPLPUSH, BLMOVE, BLMPOP, BZPOPMIN, BZPOPMAX, BZMPOP, WAIT, WAITAOF, XREAD, XREADGROUP
#### Méthode de correction (sans mise à niveau)
**Option 1 — Blocage via ACL (recommandé) :**```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éthode 2 — Désactivation via rename-command (nécessite un redémarrage de 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éthode 3 — Activer le protected-mode et limiter les connexions :**```bash
redis-cli CONFIG SET protected-mode yes
# Trong redis.conf:
protected-mode yes
bind 127.0.0.1
| Propriété | Valeur |
|---|---|
| Titre | Accès mémoire invalide dans la commande RESTORE |
| CVSS 4.0 | 7.7 (ÉLEVÉ) |
| CWE | CWE-20 (Validation d'entrée incorrecte) + CWE-122 (Dépassement de tampon sur le tas) |
| Vecteur | AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| Condition | Attaquant authentifié, disposant du droit d'exécuter RESTORE |
| Portée | Tous les Redis OSS/CE, Redis Software <= 8.0.6 |
La vulnérabilité comprend 2 sous-problèmes :
Un attaquant authentifié envoie un payload RESTORE spécialement conçu pour exploiter les erreurs ci-dessus, ce qui peut conduire à une exécution de code à distance (RCE) dans le contexte du processus redis-server.