
Exploit proof-of-concept per Redis 8.2.1: use-after-free nel parser Lua, che mette in competizione la garbage collection tramite chiamate loadstring appositamente create per ottenere l'esecuzione remota di codice.
Una race condition sulla GC del nome del chunk Lua che porta a un use-after-free e all'esecuzione di codice remoto in Redis 8.2.1.
Redis incorpora Lua 5.1 per lo scripting. Nelle versioni fino alla 8.2.1 la funzione luaY_parser non ancora il nome del chunk sulla pila Lua prima di invocare il lexer. Uno script appositamente costruito può innescare la garbage collection mentre il parser fa ancora riferimento alla stringa liberata, producendo un UAF che conduce all'esecuzione di codice nativo.
redis-cliCVE-2025-49844.lua – martella il parser con migliaia di chiamate loadstring e un nome di chunk abilitato alla GC per vincere la race condition.while redis-cli -h localhost -p 6379 --eval CVE-2025-49844.lua >/dev/null; do
printf '.'
done
Risultato atteso:
Nelle build vulnerabili il processo Redis alla fine va in crash o interrompe la connessione. La versione 8.2.2 patchata (commit d5728cb5795c966c5b5b1e0f0ac576a7e69af539) ancora il nome del chunk e lo script viene eseguito senza effetti dannosi.
Eseguire l'upgrade a Redis 8.2.2 o successiva, oppure disabilitare lo scripting Lua per utenti non fidati.