不正な長文字列デリミタにより、Redis 8.2.1 の Lua レキサーで範囲外読み取り(OOB read)が発生します。
Redis 8.2.1 の Lua 長文字列パーサーは、不正な [=... シーケンスを誤って処理し、バッファアンダーフローや過剰な再帰を引き起こすセンチネル値を返します。攻撃者はこれにより、Redis に範囲外読み取りを発生させたり、C スタックをオーバーフローさせたりすることができます。
redis-cliCVE-2025-46819.lua – 巨大な不正デリミタを構築し、loadstring に渡します。redis-cli -h localhost -p 6379 --eval CVE-2025-46819.lua
期待される結果:
脆弱性のあるバージョンでは、通常「ERR C stack overflow」または即時クラッシュが発生します。Redis 8.2.2(コミット 3a1624da2449ac3dbfc4bdaed43adf77a0b7bfba)では、サーバーを不安定にすることなく「invalid long string delimiter」でスクリプトを拒否します。
Redis 8.2.2 以降にアップグレードするか、信頼できないユーザーに対して Lua を無効にしてください。