
Redis 8.2.1 Luaパーサーのuse-after-free脆弱性に対する概念実証(PoC)エクスプロイト。細工されたloadstring呼び出しによりガベージコレクションとの競合を引き起こし、リモートコード実行(RCE)を達成する。
Lua チャンク名の GC レースにより、Redis 8.2.1 で use-after-free とリモートコード実行が発生する問題。
Redis はスクリプト実行のために Lua 5.1 を組み込んでいます。バージョン 8.2.1 までの luaY_parser 関数は、レキサーを呼び出す前に Lua スタック上でチャンク名文字列をアンカーしません。細工されたスクリプトは、パーサーが解放済み文字列を参照している間にガベージコレクションを発生させ、ネイティブコード実行につながる UAF を引き起こす可能性があります。
redis-cliCVE-2025-49844.lua – 何千もの loadstring 呼び出しと GC を有効にしたチャンク名でパーサーを攻撃し、レースに勝利します。while redis-cli -h localhost -p 6379 --eval CVE-2025-49844.lua >/dev/null; do
printf '.'
done
期待される結果:
影響を受けるビルドでは、Redis プロセスは最終的にクラッシュするか接続を切断します。パッチ適用済みの 8.2.2(コミット d5728cb5795c966c5b5b1e0f0ac576a7e69af539)はチャンク名をアンカーし、スクリプトは無害に実行されます。
Redis 8.2.2 以降にアップグレードするか、信頼できないユーザーに対して Lua スクリプトを無効にしてください。