
Proof-of-Concept-Exploit für den Use-After-Free im Lua-Parser von Redis 8.2.1, der durch manipulierte loadstring-Aufrufe ein Wettrennen mit der Garbage Collection auslöst, um Remote-Code-Ausführung zu erreichen.
Lua-Chunk-Name-GC-Race, die in Redis 8.2.1 zu Use-After-Free und Remote-Code-Ausführung führt.
Redis bettet Lua 5.1 für Skripting ein. In Versionen bis 8.2.1 verankert die Funktion luaY_parser die Chunk-Name-Zeichenkette NICHT auf dem Lua-Stack, bevor der Lexer aufgerufen wird. Ein manipuliertes Skript kann die Garbage Collection auslösen, während der Parser noch auf die freigegebene Zeichenkette verweist, was zu einer UAF führt, die zur Ausführung von nativem Code führt.
redis-cliCVE-2025-49844.lua – den Parser mit Tausenden von loadstring-Aufrufen und einem GC-fähigen Chunk-Namen bombardieren, um das Rennen zu gewinnen.while redis-cli -h localhost -p 6379 --eval CVE-2025-49844.lua >/dev/null; do
printf '.'
done
Erwartetes Ergebnis:
Bei anfälligen Builds stürzt der Redis-Prozess schließlich ab oder verwirft die Verbindung. Das gepatchte 8.2.2 (Commit d5728cb5795c966c5b5b1e0f0ac576a7e69af539) verankert den Chunk-Namen und das Skript läuft harmlos ab.
Aktualisieren Sie auf Redis 8.2.2 oder höher oder deaktivieren Sie Lua-Skripting für nicht vertrauenswürdige Benutzer.