CVE-2025-38708 in Linux
الملخص
بحسب VulDB • 12/07/2026
في نواة لينكس، تم حل الثغرة التالية:
drbd: إضافة kref_get المفقودة في handle_write_conflicts
عند تفعيل خيار `two-primaries` (الأزواج المتعددة)، يحاول DRBD اكتشاف عمليات الكتابة "المتزامنة" ومعالجة تعارضات الكتابة، بحيث ينتهي الأمر بالحصول على بيانات متطابقة حتى إذا تمت الكتابة إلى نفس القطاع بشكل متزامن على كل من العقدتين بعد اكتمال العمليات.
أثناء معالجة عمليات الكتابة التي تم تجاوزها ("superseeded")، نسينا استدعاء `kref_get`، مما أدى إلى تدمير جهاز drbd (`drbd_destroy_device`) قبل الأوان واستخدام الذاكرة بعد تحريرها (Use-After-Free)، وبالتالي حدوث انهيارات في النظام مع أعراض محددة.
الأهمية: لا ينبغي لأي شخص استخدام DRBD كمولد عشوائي للبيانات، ويبدو أن جميع مستخدمي خيار "two-primaries" يتعاملون بشكل صحيح مع عمليات الكتابة المتزامنة على الطبقات العليا. فعلى سبيل المثال، تستخدم أنظمة الملفات العنقودية (Cluster File Systems) مدير قفل موزعاً، وتوقف عملية الترحيل المباشر (Live Migration) في بيئات الافتراضية عمليات الكتابة على عقدة واحدة قبل بدء العمليات على العقدة الأخرى.
وهذا يعني أن مسار الكود هذا لا يُؤخذ أبداً في الحياة الواقعية سوى لحالات "الاختبار".
للمعلومة، في DRBD الإصدار 9، يتم التعامل مع الأمور بشكل مختلف حالياً. ما زلنا نكتشف "تعارضات الكتابة"، لكننا لم نحاول بعد الآن أن نكون أذكياء بشأنها. قررنا قطع الاتصال بقوة بدلاً من ذلك: يجب ألا تقدم الطبقات العليا عمليات كتابة متزامنة. إذا فعلوا ذلك، فهذه مسؤوليتهم هم.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.