
Redis 8.2.1 Lua पार्सर use-after-free के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो क्राफ्टेड loadstring कॉल के माध्यम से गार्बेज कलेक्शन को रेस करके रिमोट कोड एक्सेक्यूशन प्राप्त करता है।
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 – GC-सक्षम चंक नाम के साथ हज़ारों loadstring कॉल और पार्सर को हथौड़ा मारकर रेस जीतें।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 स्क्रिप्टिंग अक्षम करें।