
Proof-of-concept per l'overflow di interi in Redis Lua unpack (CVE-2025-46817) che dimostra l'esplosione dello stack e una potenziale RCE su Redis 8.2.1.
unpack Lua di Redis (Potenziale RCE)PoC dell'overflow di interi in unpack Lua di Redis che causa l'esplosione dello stack e il crash sulla versione 8.2.1.
Redis 8.2.1 include Lua 5.1 con un'implementazione di unpack che calcola il numero di risultati utilizzando interi con segno. Indici di inizio/fine scelti con cura fanno avvolgere l'aritmetica, bypassano lua_checkstack e costringono Lua a spingere miliardi di risultati. Combinato con l'avvolgimento degli indici delle tabelle, ciò può corrompere la memoria heap e portare a RCE.
redis-cliCVE-2025-46817.lua – chiama unpack con un intervallo che fa overflow dell'aritmetica con segno.redis-cli -h localhost -p 6379 --eval CVE-2025-46817.lua
Risultato atteso:
Sulla 8.2.1 il server in genere termina la connessione o va in crash a causa della crescita eccessiva dello stack. Redis 8.2.2 (commit fc9abc775e308374f667fdf3e723ef4b7eb0e3ca) rifiuta la chiamata con "ERR Error running script (too many results to unpack)".
Aggiorna a Redis 8.2.2 o successivo, che irrobustisce luaB_unpack e luaH_getnum, oppure disabilita gli script Lua per utenti non fidati.