Exécution de code à distance critique dans le magasin en mémoire le plus rapide du monde
Le scripting Lua de Redis vient de devenir la zone d'atterrissage parfaite après authentification.
Attaquant authentifié → script Lua conçu → échappement du bac à sable → RCE complète sur l'hôte
⚠️ Aperçu
CVE-2025-49844 ("RediShell") est une vulnérabilité critique de type use-after-free (UAF) dans le moteur de scripting Lua embarqué de Redis.
Un utilisateur authentifié soumet un script Lua spécialement conçu via EVAL / EVALSHA qui manipule le ramasse-miettes, déclenche une UAF lors de l'analyse/exécution, s'échappe du bac à sable Lua et obtient une exécution de code arbitraire sur l'hôte sous-jacent.
Le bogue se cachait dans le code source de Redis pendant ~13 ans (depuis l'intégration précoce de Lua) et affecte pratiquement toutes les versions avec Lua activé jusqu'à ce qu'il soit corrigé en octobre 2025.
“Un seul appel EVAL malveillant. Prise de contrôle totale du serveur. Redis en 2025–2026 devient intéressant.”
🔥 Gravité et Impact
Score de base CVSS v3.1 : 10.0 / Critique (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)
Vecteur d'attaque : Réseau (port TCP Redis, généralement 6379)
Privilèges requis : Faible (tout utilisateur Redis authentifié disposant de droits d'exécution de script)
Interaction utilisateur : Aucune
Maturité de l'exploit : PoCs publics et outils d'exploitation publiés peu après la divulgation
Réalité en mars 2026 :
Les exploits publics ciblent les reverse shells, la persistance, les charges utiles de minage de crypto
Risque élevé dans les environnements cloud (couches de cache, magasins de sessions, files d'attente)
Combiné avec une authentification faible / un Redis exposé → compromission complète de l'infrastructure
De nombreux déploiements hérités, images Docker et services gérés sont encore vulnérables
🕵️ Découverte et Crédits
Découvert par l'équipe Wiz Research
Signalé via Pwn2Own Berlin (mai 2025)
Divulgation coordonnée : 3 octobre 2025 (avis Redis + correctifs)
Surnommé "RediShell" par Wiz (RCE de type shell via échappement Lua)
🔬 Plongée technique approfondie
Redis intègre Lua 5.x pour le scripting (EVAL, EVALSHA, fonctions, etc.).
Le défaut réside dans l'interaction entre l'analyseur Lua et le GC :
L'attaquant envoie un script Lua conçu via EVAL
Lors de l'analyse (luaY_parser), un objet TString est alloué mais non protégé sur la pile Lua
Le GC s'exécute prématurément → libère l'objet
Le code ultérieur utilise la mémoire libérée → primitive UAF
L'attaquant enchaîne cela pour fuiter de la mémoire, contourner ASLR, ROP/return-to-libc → exécution de code natif arbitraire en dehors du bac à sable
Point fatal clé : Le bac à sable Lua n'a jamais été durci contre les primitives de corruption mémoire.
📅 Chronologie
Date
Événement
~2012
Introduction de l'intégration Lua vulnérable
Mai 2025
Wiz découvre et fait une démo au Pwn2Own Berlin
3 octobre 2025
Divulgation publique + avis de sécurité Redis
3 octobre 2025
Versions corrigées publiées (6.2.20+, 7.x, 8.x)
6–7 octobre 2025
Blogs de Wiz/Sysdig/Redrays + PoCs initiaux
Octobre 2025+
Dépôts d'exploits apparaissent (GitHub, labs)
Mars 2026
Exploitation en cours contre les configurations héritées/cloud
🖥️ Systèmes affectés
Vulnérable : Toutes les versions de Redis avec le scripting Lua activé avant les correctifs d'octobre 2025 Corrigé dans :
Redis 8.2.2+
Redis 8.0.4+
Redis 7.4.6+
Redis 7.2.11+
Redis 6.2.20+
Cibles courantes en 2026 :
Magasins de cache/sessions cloud (AWS ElastiCache, Azure Cache, GCP Memorystore)
Déploiements Docker/K8s avec des images Redis par défaut
Applications héritées utilisant Redis < 7.x
Instances Redis exposées (pas d'authentification ou mot de passe faible)
Solution de contournement (avant correctif) :
Désactiver le scripting Lua via ACL : refuser EVAL, EVALSHA, SCRIPT LOAD, etc.
Appliquer une authentification forte + des restrictions réseau
💥 Exploit public et PoC
Flux d'attaque réaliste (haut niveau, d'après les analyses publiques) :
S'authentifier auprès de Redis (mot de passe si requis)
Envoyer un script EVAL conçu qui déclenche UAF + fuite mémoire
Utiliser la fuite pour contourner ASLR
Enchaîner les gadgets ROP → lancer un reverse shell / exécuter une charge utile
Exemple de squelette en une ligne (pas un exploit complet – illustration uniquement) :
Des PoCs complets armés sont apparus sur GitHub en quelques jours (fuite mémoire → ROP → shell).
Beaucoup incluent le contournement d'ASLR, l'évasion NX/DEP et des options de persistance.
🛡️ Vérifier et corriger (mars 2026)
1. Vérifier la version
root@kitploit:~
redis-cli INFO SERVER | grep redis_version
→ Vulnérable si < versions corrigées ci-dessus
2. Corriger immédiatement
Mettre à jour vers la dernière version stable (8.2.x+ recommandé)
Pour les services gérés (AWS/Azure/GCP) : forcer la mise à jour ou confirmer l'application du correctif
3. Renforcement
Désactiver complètement Lua si non nécessaire :
root@kitploit:~
# In redis.conf or ACL
acl setuser default off ~* &* +@all -EVAL -EVALSHA -SCRIPT
Lier à localhost / utiliser TLS + authentification forte
Pare-feu : restreindre TCP/6379 aux IP de confiance
Surveiller les utilisations anormales de EVAL
📈 Statut — mars 2026
L'exploitation est toujours active contre les instances cloud/héritées non corrigées
Redis reste omniprésent → cible de grande valeur
Changement d'écosystème : de nombreuses organisations désactivent désormais le scripting Lua par défaut
🎓 Leçons apprises
Des bogues de 13 ans se cachent dans les interpréteurs embarqués
L'échappement du bac à sable via la corruption mémoire = RCE instantanée
Authentifié ne veut pas dire sûr — surtout sur les services exposés
Corriger vite, désactiver les fonctionnalités risquées encore plus vite