🚨 CVE-2025-49844 (RediShell) - Guide Complet
⚠️ Juste pour Apprendre, Pas pour Hacker ;) ⚠️
Salut ! C'est un outil simple que j'ai créé pour aider les gens à vérifier si leurs serveurs Redis sont vulnérables à ce bug. Ce n'est pas destiné à de vraies attaques - juste pour apprendre et protéger vos propres trucs.
De Quoi Ça Parle ?
Très bien mes chers amis, voici l'une des plus intéressantes conneries de 2025, CVE-2025-49844. En gros, si quelqu'un peut exécuter des scripts Lua sur votre serveur Redis, il peut accéder à la mémoire.
Les Trucs Importants
- À Quel Point C'est Grave ? : Foutu (9,9/10)
- Qui Est Concerné : Toute personne utilisant Redis version 8.2.1 ou plus ancienne
- Ce Qui Se Passe : Exécution de code
- Comment Ils Font : Via les scripts Lua (que Redis utilise pour des trucs de base de données sophistiqués)
C'est Parti !
Étape 1 : Compiler Ce Truc
# D'abord, préparez le Go
cd scanner
go mod tidy
# Ensuite, compilez le scanner
go build -o rscan redis-scanner.go
Étape 2 : Vérifier Vos Serveurs
# Vérifier un serveur
./rscan -host votre-serveur.com -port 6379
# Vérifier avec un mot de passe (si vous en avez un)
./rscan -host votre-serveur.com -port 6379 -auth votremotdepasse
# Vérifier plusieurs serveurs d'un coup
./rscan -host serveur1.com,serveur2.com,serveur3.com
# Ou vérifier à partir d'un fichier
./rscan -file hôtes.txt
Étape 3 : Réparer Ce Qui Est Cassé
# Désactiver les scripts Lua (ça stoppe l'attaque)
redis-cli ACL SETUSER default -@scripting
# Ou simplement mettre à jour Redis vers la version la plus récente
Que Signifient les Résultats ?
- 🚨 DANGER ! - Votre Redis est vulnérable (ancienne version + scripts Lua fonctionnels)
- 🛡️ Bien ! - Votre Redis est protégé (Lua désactivé ou version plus récente)
- ✅ Super ! - Votre Redis est sûr (version 8.2.2 ou plus récente)
- ❌ Oups ! - Impossible de se connecter ou quelque chose a mal tourné
Le Problème
C'est ce qu'on appelle un bug "use-after-free". En gros, Redis a un système de gestion de la mémoire qui se mélange parfois les pinceaux sur la mémoire qu'il a déjà nettoyée.
Comment Ça Devrait Fonctionner :
- 📝 Redis crée des données en mémoire
- 🔍 Utilise ces données pour quelque chose
- 🗑️ Nettoie la mémoire quand c'est fini
- ✅ Tout est sûr et sécurisé
Comment Ça Fonctionne Vraiment (Le Bug) :
- 📝 Redis crée des données en mémoire
- 🔍 Utilise ces données pour quelque chose
- 🗑️ Nettoie la mémoire
- 🔍 Essaie d'utiliser les données à nouveau (mais elles ont déjà disparu !)
- 💥 Tout casse ce qui est exploité pour le fun ;)
- Ce Qu'ils Ciblent : Le système de scripts Lua de Redis
- Les Commandes Qu'ils Utilisent :
EVAL et EVALSHA (elles exécutent des scripts Lua)
- Ce Qu'ils Veulent : Écraser la mémoire et exécuter du code arbitraire
Faites Ça Tout de Suite (Premières 24 Heures)
- Trouvez tous vos serveurs Redis (vous en avez peut-être plus que vous ne le pensez)
- Vérifiez leurs versions (tout ce qui est 8.2.1 ou plus ancien est foutu, vous devrez mettre à jour !)
- Désactivez les scripts Lua (ça stoppe l'attaque immédiatement)
- Planifiez votre mise à niveau (c'est la vraie solution)
Correctif Rapide (Stoppez l'Attaque Maintenant !)
# Désactivez les scripts Lua (ça stoppe l'attaque)
redis-cli ACL SETUSER default -@scripting
# Ou modifiez votre fichier redis.conf et ajoutez cette ligne :
disable-commands eval evalsha
# Puis redémarrez Redis
sudo systemctl restart redis
Verrouillez Votre Réseau
# Autorisez uniquement certaines IP à se connecter à Redis
iptables -A INPUT -p tcp --dport 6379 -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -p tcp --dport 6379 -j DROP
# Faites écouter Redis uniquement sur des interfaces réseau spécifiques
bind 127.0.0.1 10.0.0.100
# Définissez un mot de passe fort
redis-cli CONFIG SET requirepass "fuckredis1234ilovehacking!"
# Créez des utilisateurs avec des permissions limitées
redis-cli ACL SETUSER appuser on >password +@read +@write -@scripting
redis-cli ACL SETUSER readonly on >password +@read -@scripting
Mettez à Jour Redis (La Vraie Solution)
# Sauvegardez vos données d'abord (faites-le toujours !)
sudo cp -r /var/lib/redis /var/lib/redis.backup.$(date +%Y%m%d)
# Mettez à jour Redis vers la version corrigée
# Sur Ubuntu/Debian :
sudo apt update && sudo apt install redis-server=8.2.2*
# Sur CentOS/RHEL :
sudo yum update redis
# Vérifiez que ça a fonctionné
redis-server --version
Testez Que Votre Correctif Fonctionne Vraiment
Assurez-Vous Que les Scripts Sont Bloqués
# Ça devrait échouer si votre correctif fonctionne
redis-cli -a "VotreMotDePasse" EVAL "return 'test'" 0
# Devrait dire : (error) ERR unknown command 'EVAL'
Vérifiez Votre Sécurité Réseau
# Voyez si Redis est accessible depuis le réseau
nmap -p 6379 votre-serveur-redis
# Testez si un mot de passe est requis
redis-cli -h votre-serveur-redis -p 6379 ping
# Devrait demander un mot de passe
Signes Dans Votre Réseau
- Des schémas accrus d'utilisation de scripts Lua
- Quelqu'un qui envoie des scripts vraiment gros ou compliqués
- Beaucoup de scripts qui s'exécutent très vite
- Des scripts qui sont évidemment suspects
Signes Sur Votre Serveur
- Redis plante ou redémarre sans arrêt
- L'utilisation de la mémoire qui saute de haut en bas
- Redis qui établit des connexions réseau étranges
- Des fichiers accédés qui ne devraient pas l'être
Vérifiez Vos Journaux
# Cherchez une activité de scripts Lua bizarre
grep -i "eval\|evalsha" /var/log/redis/redis.log
# Vérifiez les tentatives de connexion échouées
grep -i "auth" /var/log/redis/redis.log
# Cherchez des erreurs de scripts
grep -i "script" /var/log/redis/redis.log
À Quel Point C'est Difficile à Exploiter ?
C'est Assez Compliqué (si vous ne savez pas ce qui se passe)
- Vous devez comprendre comment Redis fonctionne en interne
- Astuces Mémoire : Vous devez jouer avec la façon dont Redis gère la mémoire
- Compétences Lua : Vous devez être bon pour écrire des scripts Lua
- Timing Parfait : Vous devez déclencher le bug au moment exact
À Quoi Ressemblent les Vraies Exploitations
- Créez des Schémas Mémoire Bizarres : Écrivez des scripts Lua qui font organiser la mémoire de Redis de manières spécifiques
- Trompez le Processus de Nettoyage : Faites nettoyer la mémoire à Redis au mauvais moment
- Cassez la Mémoire : Faites utiliser à Redis de la mémoire qui a déjà été supprimée
- Exécutez Votre Code : Utilisez la mémoire cassée pour exécuter ce que vous voulez
À Quel Point C'est Vraiment Grave ?
Ce Qui Se Passe Si Vous Êtes Piraté
- Prise de Contrôle Totale : Les hackers peuvent exécuter tout ce qu'ils veulent sur votre serveur
- Toutes Vos Données : Ils peuvent voir tout ce qui est dans votre base de données Redis
- Propagation à d'Autres Serveurs : Ils pourraient utiliser votre serveur pour attaquer d'autres choses
- Rester Caché : Ils peuvent garder l'accès même après que vous pensiez avoir tout réparé
Ce Que Ça Signifie Pour Votre Entreprise
- Fuites de Données : Toutes vos informations sensibles pourraient être volées
- Tout Casse : Votre service Redis pourrait cesser de fonctionner
- Problèmes Légaux : Vous pourriez être amendé pour ne pas avoir protégé les données
- Plus Personne Ne Vous Fait Confiance : Les clients pourraient partir s'ils l'apprennent
Passons aux Choses Techniques