
# Environnement de laboratoire éducatif démontrant CVE-2025-49844 (RediShell) dans Redis. Comprend une configuration Docker, un script PoC d'exploitation et des recommandations de sécurité pour le correctif et le durcissement.
Un environnement de laboratoire pratique pour tester et comprendre la vulnérabilité critique CVE-2025-49844 (RediShell) dans Redis.
Ceci est uniquement à des fins éducatives !
Toutes les versions de Redis antérieures à :
Ce laboratoire utilise Redis 7.2.0 (version vulnérable).
# Installer Docker et Docker Compose
sudo apt-get update
sudo apt-get install docker.io docker-compose
# Installer les dépendances Python
pip install redis colorama
# 1. Démarrer l'instance Redis vulnérable
docker-compose up -d
# 2. Attendre quelques secondes que Redis démarre
sleep 5
# 3. Vérifier que Redis est en cours d'exécution
docker-compose ps
# 4. Exécuter l'exploit
python3 exploit_poc.py -H localhost -p 6380 -m all
# Vérifier uniquement la vulnérabilité
python3 exploit_poc.py -H localhost -p 6380 -m check
# Exécuter le test UAF de base
python3 exploit_poc.py -H localhost -p 6380 -m basic
# Tester l'évasion du sandbox
python3 exploit_poc.py -H localhost -p 6380 -m sandbox
# Tester la corruption mémoire avancée
python3 exploit_poc.py -H localhost -p 6380 -m advanced
# Exécuter tous les tests
python3 exploit_poc.py -H localhost -p 6380 -m all
# Avec authentification
python3 exploit_poc.py -H localhost -p 6380 -a "password" -m all
# Voir les journaux
docker-compose logs -f
# Se connecter au CLI Redis
docker-compose exec redis-vulnerable redis-cli
# Arrêter le laboratoire
docker-compose down
# Tout supprimer (y compris les volumes)
docker-compose down -v
╔═══════════════════════════════════════════════════════════╗
║ CVE-2025-49844 (RediShell) PoC ║
║ Use-After-Free in Redis Lua Interpreter ║
║ CVSS Score: 10.0 (CRITICAL) ║
╚═══════════════════════════════════════════════════════════╝
[*] Testing connection to localhost:6380...
[+] Connected successfully!
[i] Redis Version: 7.2.0
[*] Checking if Lua scripting is enabled...
[+] Lua scripting is enabled!
[*] Checking vulnerability status...
[i] Detected Redis version: 7.2.0
[!] VULNERABLE: This version is affected by CVE-2025-49844
[!] Update to the latest patched version immediately!
[*] Attempting basic UAF trigger...
[+] Lua script executed: UAF pattern executed
[!] UAF pattern triggered (simplified demo)
[*] Testing Lua sandbox boundaries...
[*] Testing os.execute...
[+] Protected: os.execute blocked
[*] Testing io.popen...
[+] Protected: io.popen blocked
[*] Testing loadfile...
[+] Protected: loadfile blocked
[*] Testing package.loadlib...
[+] Protected: package.loadlib blocked
[*] Attempting memory corruption pattern...
[+] Memory corruption pattern executed: Memory corruption pattern completed
[!] In vulnerable versions, this could lead to RCE!
============================================================
[*] PoC execution completed
============================================================
La vulnérabilité exploite un bug Use-After-Free vieux de 13 ans dans l'interpréteur Lua de Redis :
# Récupérer la dernière version corrigée
docker pull redis:8.2.2
# ou
docker pull redis:7.4.6
# /etc/redis/redis.conf
# Activer l'authentification
requirepass your_strong_password_here
# Restreindre l'accès réseau
bind 127.0.0.1 ::1
protected-mode yes
# Désactiver les commandes dangereuses
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command EVAL ""
rename-command EVALSHA ""
# Activer la journalisation
loglevel notice
logfile /var/log/redis/redis-server.log
# Désactiver les scripts Lua pour des utilisateurs spécifiques
redis-cli ACL SETUSER myuser -@scripting
# Créer un utilisateur limité
redis-cli ACL SETUSER limited on >password ~* +@read +@write -@scripting
# Utiliser les règles de pare-feu
sudo ufw allow from 192.168.1.0/24 to any port 6379
sudo ufw deny 6379
# Ou utiliser iptables
sudo iptables -A INPUT -p tcp --dport 6379 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 6379 -j DROP
# Vérifier ce qui utilise le port
sudo lsof -i :6380
# Ou changer le port dans docker-compose.yml
# ports:
# - "6381:6379"
# Installer les paquets requis
pip install redis colorama
# Ou utiliser un environnement virtuel
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Ajouter l'utilisateur au groupe docker
sudo usermod -aG docker $USER
# Puis se déconnecter et se reconnecter
# Vérifier les journaux
docker-compose logs
# Redémarrer le conteneur
docker-compose restart
# Reconstruire l'image
docker-compose up -d --build
redis_exploit/
├── Dockerfile # Instance vulnérable Redis 7.2.0
├── docker-compose.yml # Configuration Docker Compose
├── exploit_poc.py # Script d'exploit principal
├── requirements.txt # Dépendances Python
├── .gitignore # Fichier d'ignorance Git
└── README.md # Ce fichier
Ce PoC est simplifié et uniquement à des fins éducatives. L'exploit réel de CVE-2025-49844 implique une manipulation mémoire complexe. Mettez toujours à jour vos instances Redis vers la dernière version !