🚨 CVE-2025-49844 (RediShell) - Guida Completa
⚠️ Solo per Imparare, Non per Hackerare ;) ⚠️
Ehi! Questo è un semplice strumento che ho creato per aiutare le persone a verificare se i loro server Redis sono vulnerabili a questo bug. Non è pensato per attacchi reali - solo per imparare e proteggere le proprie cose.
Di Cosa Si Tratta?
Ok gente mia, ecco uno dei casini più interessanti del 2025, CVE-2025-49844. In pratica, se qualcuno riesce a eseguire script Lua sul tuo server Redis, può ottenere accesso alla memoria.
Le Cose Importanti
- Quanto è Grave?: Serio (9.9/10)
- Chi è Colpito: Chiunque usi Redis versione 8.2.1 o precedente
- Cosa Succede: Esecuzione di Codice
- Come Lo Fanno: Tramite scripting Lua (che Redis usa per robe fancy col database)
Iniziamo!
Passo 1: Compila Questa Cosa
# Prima, prepara le cose per Go
cd scanner
go mod tidy
# Poi compila lo scanner
go build -o rscan redis-scanner.go
Passo 2: Controlla i Tuoi Server
# Controlla un server
./rscan -host tuo-server.com -port 6379
# Controlla con una password (se ne hai una)
./rscan -host tuo-server.com -port 6379 -auth tuapassword
# Controlla più server in una volta
./rscan -host server1.com,server2.com,server3.com
# Oppure controlla da un file
./rscan -file hosts.txt
Passo 3: Ripara Cosa È Rotto
# Disattiva lo scripting Lua (questo ferma l'attacco)
redis-cli ACL SETUSER default -@scripting
# Oppure aggiorna Redis all'ultima versione
Cosa Significano i Risultati?
- 🚨 PERICOLO! - Il tuo Redis è vulnerabile (versione vecchia + script Lua funzionanti)
- 🛡️ Bene! - Il tuo Redis è protetto (Lua disabilitato o versione più recente)
- ✅ Ottimo! - Il tuo Redis è al sicuro (versione 8.2.2 o successiva)
- ❌ Ops! - Impossibile connettersi o qualcosa è andato storto
Come Funziona Questo Bug di Memoria
Il Problema
Questo è quello che viene chiamato un bug "use-after-free". In pratica, Redis ha un sistema di gestione della memoria che a volte si confonde su quale memoria ha già ripulito.
Come Dovrebbe Funzionare:
- 📝 Redis crea alcuni dati in memoria
- 🔍 Usa quei dati per qualcosa
- 🗑️ Ripulisce la memoria quando ha finito
- ✅ Tutto è sicuro e a posto
Come Funziona Davvero (Il Bug):
- 📝 Redis crea alcuni dati in memoria
- 🔍 Usa quei dati per qualcosa
- 🗑️ Ripulisce la memoria
- 🔍 Prova a usare di nuovo i dati (ma sono già spariti!)
- 💥 Tutto si rompe e viene sfruttato per divertimento ;)
Come Lo Usano gli Hacker
- Cosa Colpiscono: Il sistema di scripting Lua di Redis
- Comandi Che Usano:
EVAL e EVALSHA (questi eseguono script Lua)
- Cosa Vogliono: Sovrascrivere la memoria ed eseguire codice arbitrario
Come Risolvere Questo Problema
Fai Questo Subito (Prime 24 Ore)
- Trova tutti i tuoi server Redis (potresti averne più di quanto pensi)
- Controlla le loro versioni (qualsiasi cosa 8.2.1 o precedente è compromessa, dovrai aggiornare!)
- Disattiva gli script Lua (questo ferma l'attacco immediatamente)
- Pianifica l'aggiornamento (questa è la vera soluzione)
Soluzione Rapida (Ferma l'Attacco Ora!)
# Disattiva gli script Lua (questo ferma l'attacco)
redis-cli ACL SETUSER default -@scripting
# Oppure modifica il tuo file redis.conf e aggiungi questa riga:
disable-commands eval evalsha
# Poi riavvia Redis
sudo systemctl restart redis
Blocca la Tua Rete
# Consenti solo a specifici IP di connettersi a 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
# Fai ascoltare Redis solo su specifiche interfacce di rete
bind 127.0.0.1 10.0.0.100
Imposta Password Adeguate
# Imposta una password forte
redis-cli CONFIG SET requirepass "fuckredis1234ilovehacking!"
# Crea utenti con permessi limitati
redis-cli ACL SETUSER appuser on >password +@read +@write -@scripting
redis-cli ACL SETUSER readonly on >password +@read -@scripting
Aggiorna Redis (La Vera Soluzione)
# Fai un backup dei tuoi dati prima (fallo sempre!)
sudo cp -r /var/lib/redis /var/lib/redis.backup.$(date +%Y%m%d)
# Aggiorna Redis alla versione corretta
# Su Ubuntu/Debian:
sudo apt update && sudo apt install redis-server=8.2.2*
# Su CentOS/RHEL:
sudo yum update redis
# Verifica che abbia funzionato
redis-server --version
Testa Che la Tua Soluzione Funzioni Davvero
Assicurati Che gli Script Siano Bloccati
# Questo dovrebbe fallire se la tua soluzione funziona
redis-cli -a "LaTuaPassword" EVAL "return 'test'" 0
# Dovrebbe dire: (error) ERR unknown command 'EVAL'
Controlla la Tua Sicurezza di Rete
# Verifica se Redis è accessibile dalla rete
nmap -p 6379 il-tuo-server-redis
# Testa se la password è richiesta
redis-cli -h il-tuo-server-redis -p 6379 ping
# Dovrebbe chiedere la password
Come Riconoscere Questo Attacco
Segni nella Tua Rete
- Modelli aumentati di utilizzo di script Lua
- Qualcuno che invia script molto grandi o complicati
- Molti script che girano molto velocemente
- Script chiaramente sospetti
Segni sul Tuo Server
- Redis continua a crashare o riavviarsi
- L'utilizzo della memoria che salta su e/o giù
- Redis che fa connessioni di rete strane
- File accessibili che non dovrebbero esserlo
Controlla i Tuoi Log
# Cerca attività strana di script Lua
grep -i "eval\|evalsha" /var/log/redis/redis.log
# Controlla i tentativi di accesso falliti
grep -i "auth" /var/log/redis/redis.log
# Cerca errori negli script
grep -i "script" /var/log/redis/redis.log
Quanto È Difficile Sfruttare Questo?
È Abbastanza Complicato (se non sai cosa sta succedendo)
- Devi capire come funziona Redis internamente
- Trucchi di Memoria: Devi interferire con come Redis gestisce la memoria
- Competenze Lua: Devi essere bravo a scrivere script Lua
- Tempismo Perfetto: Devi attivare il bug esattamente nel momento giusto
Come Sono Fatti gli Exploit Reali
- Crea Modelli di Memoria Strani: Scrivi script Lua che fanno organizzare la memoria a Redis in modi specifici
- Inganna il Processo di Pulizia: Fai pulire la memoria a Redis nel momento sbagliato
- Rompi la Memoria: Fai usare a Redis memoria che è già stata eliminata
- Esegui il Tuo Codice: Usa la memoria rotta per eseguire qualsiasi cosa tu voglia
Quanto È Grave Davvero?
Cosa Succede Se Vieni Hackerato
- Controllo Totale: Gli hacker possono eseguire qualsiasi cosa vogliano sul tuo server
- Tutti i Tuoi Dati: Possono vedere tutto nel tuo database Redis
- Diffusione ad Altri Server: Potrebbero usare il tuo server per attaccare altre cose
- Rimanere Nascosti: Possono mantenere l'accesso anche dopo che pensi di aver risolto
Cosa Significa Questo per la Tua Attività
- Dati Divulgati: Tutte le tue informazioni sensibili potrebbero essere rubate
- Tutto Si Rompe: Il tuo servizio Redis potrebbe smettere di funzionare
- Problemi Legali: Potresti essere multato per non aver protetto i dati
- Nessuno Si Fida di Te: I clienti potrebbero andarsene se lo scoprono
Andiamo sul Tecnico
Quali Parti di Redis Sono Rotte
- Il motore di scripting Lua (comandi
eval e evalsha)
- Come Redis gestisce la memoria
- Il sistema di garbage collection (pulisce la memoria inutilizzata)
Come Viene Rotta la Memoria
Il bug accade quando:
- Crei modelli specifici di oggetti in Lua
- Interferisci con come Redis conta i riferimenti alla memoria
- Forzi Redis a pulire la memoria nel momento sbagliato
- Sfrutti il tempismo di quando Redis gestisce la memoria
Quali Versioni Sono Colpite
- Redis versione 8.2.1 e precedenti
- Qualsiasi versione con lo scripting Lua attivato
- Questo bug esiste da circa 13 anni (accidenti!)
Come Sono Fatti gli Exploit (Per Imparare)