
Exploit de prova de conceito para o uso após liberação (use-after-free) do parser Lua do Redis 8.2.1, que disputa a coleta de lixo por meio de chamadas loadstring elaboradas para alcançar a execução remota de código.
Corrida de GC no nome do chunk Lua levando a uso após liberação no Redis 8.2.1 e execução remota de código.
O Redis incorpora Lua 5.1 para scripts. Nas versões até 8.2.1, a função luaY_parser NÃO ancora a string do nome do chunk na pilha Lua antes de invocar o lexer. Um script especialmente elaborado pode acionar a coleta de lixo enquanto o parser ainda referencia a string liberada, produzindo um UAF que leva à execução de código nativo.
redis-cliCVE-2025-49844.lua – bombardeie o parser com milhares de chamadas loadstring e um nome de chunk com GC habilitado para vencer a corrida.while redis-cli -h localhost -p 6379 --eval CVE-2025-49844.lua >/dev/null; do
printf '.'
done
Resultado esperado:
Em versões vulneráveis, o processo do Redis eventualmente falha ou derruba a conexão. A versão 8.2.2 corrigida (commit d5728cb5795c966c5b5b1e0f0ac576a7e69af539) ancora o nome do chunk e o script é executado sem causar danos.
Atualize para o Redis 8.2.2 ou posterior, ou desabilite scripts Lua para usuários não confiáveis.