
Prova de conceito para o estouro de inteiro no unpack do Lua do Redis (CVE-2025-46817), demonstrando o estouro de pilha e possível RCE no Redis 8.2.1.
unpack do Lua do Redis (Possível RCE)PoC de estouro de inteiro unpack do Lua do Redis causando explosão de pilha e travamento na versão 8.2.1.
O Redis 8.2.1 inclui o Lua 5.1 com uma implementação de unpack que calcula a contagem de resultados usando inteiros com sinal. Índices inicial/final cuidadosamente escolhidos fazem a aritmética estourar, contornam lua_checkstack e forçam o Lua a empurrar bilhões de resultados. Combinado com o estouro de índice de tabela, isso pode corromper a memória heap e levar a RCE.
redis-cliCVE-2025-46817.lua – chama unpack com um intervalo que estoura a aritmética com sinal.redis-cli -h localhost -p 6379 --eval CVE-2025-46817.lua
Resultado esperado:
Na versão 8.2.1, o servidor normalmente encerra a conexão ou trava devido ao crescimento excessivo da pilha. O Redis 8.2.2 (commit fc9abc775e308374f667fdf3e723ef4b7eb0e3ca) rejeita a chamada com "ERR Error running script (too many results to unpack)".
Atualize para o Redis 8.2.2 ou posterior, que reforça luaB_unpack e luaH_getnum, ou desative o script Lua para usuários não confiáveis.