
Ambiente de laboratório educacional demonstrando o CVE-2025-49844 (RediShell) no Redis. Inclui configuração Docker, script PoC de exploração e recomendações de segurança para correção e endurecimento.
Um ambiente de laboratório prático para testar e compreender a vulnerabilidade crítica CVE-2025-49844 (RediShell) no Redis.
Isto é apenas para fins educacionais!
Todas as versões do Redis anteriores a:
Este laboratório usa Redis 7.2.0 (versão vulnerável).
# Instalar Docker e Docker Compose
sudo apt-get update
sudo apt-get install docker.io docker-compose
# Instalar dependências Python
pip install redis colorama
# 1. Iniciar instância vulnerável do Redis
docker-compose up -d
# 2. Aguardar alguns segundos para o Redis iniciar
sleep 5
# 3. Verificar se o Redis está em execução
docker-compose ps
# 4. Executar o exploit
python3 exploit_poc.py -H localhost -p 6380 -m all
# Verificar apenas a vulnerabilidade
python3 exploit_poc.py -H localhost -p 6380 -m check
# Executar teste básico de UAF
python3 exploit_poc.py -H localhost -p 6380 -m basic
# Testar escape da sandbox
python3 exploit_poc.py -H localhost -p 6380 -m sandbox
# Testar corrupção avançada de memória
python3 exploit_poc.py -H localhost -p 6380 -m advanced
# Executar todos os testes
python3 exploit_poc.py -H localhost -p 6380 -m all
# Com autenticação
python3 exploit_poc.py -H localhost -p 6380 -a "password" -m all
# Visualizar logs
docker-compose logs -f
# Conectar ao CLI do Redis
docker-compose exec redis-vulnerable redis-cli
# Parar o laboratório
docker-compose down
# Remover tudo (incluindo volumes)
docker-compose down -v
╔═══════════════════════════════════════════════════════════╗
║ CVE-2025-49844 (RediShell) PoC ║
║ Use-After-Free no Interpretador Lua do Redis ║
║ Pontuação CVSS: 10.0 (CRÍTICA) ║
╚═══════════════════════════════════════════════════════════╝
[*] Testando conexão com localhost:6380...
[+] Conectado com sucesso!
[i] Versão do Redis: 7.2.0
[*] Verificando se o script Lua está habilitado...
[+] Script Lua está habilitado!
[*] Verificando status da vulnerabilidade...
[i] Versão do Redis detectada: 7.2.0
[!] VULNERÁVEL: Esta versão é afetada pela CVE-2025-49844
[!] Atualize para a versão corrigida mais recente imediatamente!
[*] Tentando acionar UAF básico...
[+] Script Lua executado: padrão UAF executado
[!] Padrão UAF acionado (demonstração simplificada)
[*] Testando limites da sandbox Lua...
[*] Testando os.execute...
[+] Protegido: os.execute bloqueado
[*] Testando io.popen...
[+] Protegido: io.popen bloqueado
[*] Testando loadfile...
[+] Protegido: loadfile bloqueado
[*] Testando package.loadlib...
[+] Protegido: package.loadlib bloqueado
[*] Tentando padrão de corrupção de memória...
[+] Padrão de corrupção de memória executado: Padrão de corrupção de memória concluído
[!] Em versões vulneráveis, isso poderia levar a RCE!
============================================================
[*] Execução do PoC concluída
============================================================
A vulnerabilidade explora um bug de Use-After-Free com 13 anos no interpretador Lua do Redis:
# Baixar a versão corrigida mais recente
docker pull redis:8.2.2
# ou
docker pull redis:7.4.6
# /etc/redis/redis.conf
# Habilitar autenticação
requirepass sua_senha_forte_aqui
# Restringir acesso à rede
bind 127.0.0.1 ::1
protected-mode yes
# Desabilitar comandos perigosos
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command EVAL ""
rename-command EVALSHA ""
# Habilitar registro de logs
loglevel notice
logfile /var/log/redis/redis-server.log
# Desabilitar script Lua para usuários específicos
redis-cli ACL SETUSER myuser -@scripting
# Criar usuário limitado
redis-cli ACL SETUSER limited on >password ~* +@read +@write -@scripting
# Usar regras de firewall
sudo ufw allow from 192.168.1.0/24 to any port 6379
sudo ufw deny 6379
# Ou usar 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
# Verificar o que está usando a porta
sudo lsof -i :6380
# Ou alterar a porta no docker-compose.yml
# ports:
# - "6381:6379"
# Instalar pacotes necessários
pip install redis colorama
# Ou usar ambiente virtual
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Adicionar usuário ao grupo docker
sudo usermod -aG docker $USER
# Depois sair e entrar novamente
# Verificar logs
docker-compose logs
# Reiniciar contêiner
docker-compose restart
# Reconstruir imagem
docker-compose up -d --build
redis_exploit/
├── Dockerfile # Instância vulnerável Redis 7.2.0
├── docker-compose.yml # Configuração do Docker Compose
├── exploit_poc.py # Script principal do exploit
├── requirements.txt # Dependências Python
├── .gitignore # Arquivo de ignorar do Git
└── README.md # Este arquivo
Este PoC é simplificado e apenas para fins educacionais. O exploit real da CVE-2025-49844 envolve manipulação complexa de memória. Sempre atualize suas instâncias do Redis para a versão mais recente!