كشفت شركة الأمن السيبراني Wiz مؤخراً عن ثغرة أمنية خطيرة في قاعدة بيانات Redis، تمكّن المستخدمين المصادق عليهم من تنفيذ أوامر عشوائية على مستوى نظام التشغيل. تم تتبع هذه الثغرة تحت المعرف CVE-2026-23479، وقد تم اكتشافها بواسطة أداة ذكاء اصطناعي متقدمة مخصصة لصيد الأخطاء في قواعد الأكواد البرمجية الضخمة.
تم اكتشاف الثغرة الأمنية في Redis، وهي قاعدة بيانات مفتوحة المصدر شائعة الاستخدام، من قبل فريق Xint Code، وهي أداة ذكاء اصطناعي مخصصة للكشف عن الثغرات. وأوضحت شركة Wiz أن الثغرة، التي حملت المعرف CVE-2026-23479، موجودة في الإصدارات بدءاً من 7.2.0 وحتى ما قبل التحديثات الأخيرة التي صدرت في 5 مايو.
التفاصيل التقنية للثغرة الأمنية في Redis
تكمن المشكلة في وظيفة “unblockClientOnKey()” ضمن ملف src/blocked.c. تعمل هذه الوظيفة على معالجة الأوامر المتعلقة بمفاتيح معينة عند تنشيطها. ومع ذلك، أثناء العملية، قد تقوم بإلغاء تخصيص الذاكرة المخصصة للمؤشر المستخدم (client pointer)، وفي الوقت نفسه، يستمر البرنامج في استخدام هذا المؤشر الملغى، مما يؤدي إلى ثغرة “استخدام بعد التحرير” (use-after-free).
بحسب تحليل شركة Wiz، فإن هذه الثغرة نتجت عن تغييرين منفصلين في الكود البرمجي. التغيير الأول في يناير 2023، والذي أضاف استدعاءً غير متحقق منه، والثاني في مارس 2023، والذي زاد من الوصول إلى بيانات العميل بعد احتمال إلغاء تخصيصها. وعلى الرغم من أن كل تغيير على حدة لم يكن يشكل خطراً كبيراً، إلا أن تجمعهما معاً في الإصدار 7.2.0 جعلهما يشكلان ثغرة أمنية خطيرة.
تنطوي سلسلة الهجمات المحتملة على عدة مراحل، تبدأ بتسريب عنوان ذاكرة “heap”، ومن ثم إلغاء تخصيص “client” وإعادة استخدامه ببيانات مزيفة في نفس الموقع. بعدها، تستغل الثغرة آليات إدارة الذاكرة الداخلية في Redis لتجاوز مؤشر وظيفة (function pointer)، مما يسمح بتنفيذ أوامر مخصصة.
مراحل استغلال الثغرة
تتضمن العملية المسار الذي أظهرته Wiz، وهو يتألف من ثلاث مراحل رئيسية:
- المرحلة الأولى: استخدام سكربت Lua قصير لتسريب عنوان ذاكرة.
- المرحلة الثانية: معالجة قيود الذاكرة للعميل، وإدخال عميل “منتفخ”، ثم إلغاء قيود الذاكرة وتنشيطه. يقوم Redis بإلغاء تخصيص العميل المسدود أثناء معالجة الأمر، ويقوم أمر `SET` لاحقاً بإعادة استخدام هذه الذاكرة بهيكل عميل مزيف.
- المرحلة الثالثة: استغلال آليات المحاسبة الداخلية للذاكرة في Redis لتجاوز مؤشر وظيفة، وتوجيهه إلى دالة `system()`، مما يسمح بتنفيذ أوامر النظام.
تزيد سهولة استغلال الثغرة في صور Docker الرسمية لـ Redis، حيث أن تلك الصور غالباً ما تأتي مع آليات حماية جزئية تسمح بتعديل جدول الروابط العامة (GOT) أثناء التشغيل، مما يسهل تجاوز آلية الربط بين الأجزاء المختلفة من البرنامج.
يتطلب استغلال هذه الثغرة الفعال الحصول على جلسة مصادق عليها مع صلاحيات تسمح بتنفيذ أوامر مثل `CONFIG SET`، `EVAL`، أوامر البث (stream) مثل `XREAD`/`XADD`، بالإضافة إلى أوامر القراءة والكتابة الأساسية (`SET`/`GET`). عادةً ما تكون هذه الصلاحيات مجمعة في أدوار مشتركة للمشرفين والمطورين.
تأثير الثغرة على البيئات السحابية
أشارت Wiz في تحليلها إلى أن Redis متواجد في غالبية البيئات السحابية، والكثير من هذه النسخ تعمل بدون كلمة مرور، مما يزيد من خطورة الثغرة. وحتى في حال وجود إعدادات أمان، فإن الثغرة تظل خطيرة ما لم يتم تصحيحها.
أظهر فريق Xint Code آلية عمل الثغرة في مسابقة ZeroDay.Cloud 2025. ووصف الفريق نفسه بأنه “أداة ذكاء اصطناعي مستقلة مصممة لاصطياد المشكلات الأمنية في قواعد الأكواد البرمجية الكبيرة”.
وأكدت Redis أنه لا يوجد دليل على استغلال هذه الثغرة في بيئاتها أو بيئات عملائها، ولم ترد تقارير عامة عن استغلالها في البرية حتى الآن. ومع ذلك، فإن الكشف عن التفاصيل التقنية الكاملة يزيد من احتمالية حدوث استغلالات مستقبلية.
خطوات التحديث والتخفيف
تم إصدار تحديثات لمعالجة هذه الثغرة في عدة فروع رئيسية لـ Redis، بما في ذلك 7.2.14، 7.4.9، 8.2.6، 8.4.3، و 8.6.3. وتعتبر هذه التحديثات طفيفة ضمن النسخ السابقة، مما يعني أنه يمكن تطبيقها دون التأثير على الوظائف الأخرى.
بالنسبة للمستخدمين الذين لا يمكنهم التحديث فوراً، تم اقتراح عدد من الإجراءات للتخفيف من المخاطر. وتشمل هذه الإجراءات عدم تعريض Redis للإنترنت العام، وتطبيق طبقة تشفير TLS، وتشديد صلاحيات الوصول (ACLs) لمنع تجميع صلاحيات مثل @admin و CONFIG و @scripting في دور واحد. كما يمكن تعطيل @scripting إذا لم يكن هناك استخدام لـ Lua.
يجب إعطاء الأولوية للحالات التي تكون فيها Redis معرضة للإنترنت، أو التي تستخدم فيها بيانات اعتماد مشتركة. كما يُنصح بتدوير أي بيانات اعتماد خاصة بـ Redis التي يتم مشاركتها على نطاق واسع.
تُعد CVE-2026-23479 واحدة من خمس ثغرات من فئة تنفيذ الأوامر عن بعد (RCE) تم الكشف عنها في Redis خلال الشهر الماضي، وتأتي بعد ثغرة RediShell السابقة التي تضمنت استخدام Lua scripting. ومن اللافت للنظر أن هذه الثغرة تم اكتشافها بواسطة أداة ذكاء اصطناعي.

