أعلنت شركة Redis عن إصلاح ثغرة أمنية بالغة الخطورة من نوع استخدام بعد التحرير (Use-After-Free) في مكوّن العملاء المحجوبين (blocking-client code) تسمح لمستخدم مصادق بتنفيذ أوامر نظام تشغيل عشوائية على الخادم المستضيف لقاعدة البيانات.
الثغرة التي تحمل الرمز CVE-2026-23479 ظهرت لأول مرة في الإصدار 7.2.0 وظلت غير مكتشفة لأكثر من عامين حتى تم إصلاحها في 5 مايو 2026. اللافت أن من اكتشفها هو أداة ذكاء اصطناعي مستقلة تدعى Team Xint Code، صُممت خصيصًا للبحث عن الثغرات في قواعد برمجية ضخمة.
الجذور التقنية للثغرة
المشكلة تكمن في الدالة unblockClientOnKey() داخل الملف blocked.c. عند تنشيط حدث مفتاح، تستدعي الدالة processCommandAndResetClient() التي قد تقوم بتحرير مؤشر العميل كأثر جانبي، لكن الكود يستمر في استخدام المؤشر المحرر، ما يؤدي إلى ثغرة CWE-416.
تحليل شركة Wiz أظهر أن الثغرة نتجت عن دمج تعديلين برمجيين منفصلين في يناير ومارس 2023، حيث لم يكن أي منهما خطيرًا بمفرده، لكن معًا ولّدا سلسلة استغلال كاملة وصلت إلى الإصدار 7.2.0.
سلسلة الاستغلال الكاملة
الهجوم يتكون من ثلاث مراحل:
- الهجوم يتكون من ثلاث مراحل:تسريب عنوان heap عبر سكربت Lua بسيط:
EVAL “return tostring(redis.call)” 0
إدارة ذاكرة العميل عبر أوامر stream، حيث يتم تحرير العميل المحجوب أثناء التنفيذ وإعادة ملء الذاكرة بهيكل مزيف.
استغلال المحاسبة الداخلية للذاكرة في الدالة updateClientMemoryUsage() لتعديل جدول العناوين العالمية (GOT) وتحويل استدعاء strcasecmp() إلى system()، ما يسمح بتنفيذ أوامر shell مباشرة.
الصورة تصبح أكثر خطورة مع النسخة الرسمية من Redis Docker التي تُشحن بإعدادات RELRO جزئية، ما يجعل جدول العناوين قابلًا للكتابة أثناء التشغيل.
نطاق التأثير والانتشار
وفقًا لـ Wiz، معظم بيئات السحابة تستخدم Redis، وغالبًا دون كلمة مرور، مما يجعل الاستغلال أسهل. رغم أن الاستغلال يتطلب جلسة مصادقة، إلا أن المستخدم الافتراضي يمتلك جميع الامتيازات اللازمة، بما في ذلك أوامر CONFIG SET وEVAL وXREAD/XADD وSET/GET.
حتى الآن لم يتم رصد استغلال فعلي في بيئات العملاء، لكن نشر السلسلة التقنية الكاملة يزيد من احتمالية ظهور هجمات لاحقة.
الإصدارات المتأثرة والإصلاحات
تم إصدار ترقيعات في 5 مايو 2026 للإصدارات التالية:
| الفرع | الإصدارات المتأثرة | الإصدار المُصلح |
|---|---|---|
| 7.2.x | 7.2.0 – 7.2.13 | 7.2.14 |
| 7.4.x | 7.4.0 – 7.4.8 | 7.4.9 |
| 8.2.x | 8.2.0 – 8.2.5 | 8.2.6 |
| 8.4.x | 8.4.0 – 8.4.2 | 8.4.3 |
| 8.6.x | 8.6.0 – 8.6.2 | 8.6.3 |
توصيات أمنية عاجلة
- الترقية الفورية إلى الإصدارات المحدثة.
- إبقاء Redis بعيدًا عن الإنترنت العام واستخدام TLS.
- تشديد صلاحيات ACL بحيث لا يجمع أي دور بين أوامر CONFIG و@admin و@scripting.
- تعطيل Lua scripting إذا لم يكن مستخدمًا، لمنع تسريب المرحلة الأولى.
- تدوير بيانات اعتماد Redis المشتركة على نطاق واسع.





























