PT-2025-3654
CVE-2024-57929
·
تاريخ النشر
2024-12-05
·
تاريخ التحديث
2026-10-19
الوصف من
CVSS 3.1
7.8
عاليةالمقاييسAV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
اسم البرنامج المعرض للثغرة والإصدارات المتأثرة
إصدارات نواة لينكس الأقدم من 6.6.74
الوصف
تم إصلاح ثغرة أمنية في نواة لينكس، وتحديدًا في مصفوفة dm، حيث كان من الممكن تحرير كتلة مصفوفة تالفة مرتين في dm array cursor end. يحدث هذا عندما تفشل دالة dm bm read lock() بسبب أخطاء في القفل أو المجموع الاختباري، مما يؤدي إلى تحرير الكتلة التالفة ضمناً مع ترك مؤشر خروج غير صالح. يجب ألا يعمل المستدعي لدالة dm bm read lock() على مؤشر dm block غير الصالح هذا، وإلا سيؤدي ذلك إلى نتائج غير محددة. على سبيل المثال، يقوم dm array cursor بتخزين المؤشر غير الصالح في ذاكرة التخزين المؤقت بشكل غير صحيح عند قراءة كتلة مصفوفة معيبة، مما يتسبب في تحرير مزدوج في dm array cursor end()، مما يؤدي بدوره إلى تشغيل BUG ON في dm-bufio cache put().
يمكن إعادة إنتاج المشكلة عن طريق تهيئة جهاز التخزين المؤقت، ومسح الكتلة الثانية من المصفوفة في وضع غير متصل (offline)، ثم محاولة إعادة فتح جهاز التخزين المؤقت. تُظهر سجلات النواة أخطاء مثل device-mapper: array: array block check failed و kernel BUG at drivers/md/dm-bufio.c:638. يتضمن التصحيح تعيين مؤشر الكتلة المخزنة مؤقتًا إلى NULL في حالة حدوث أخطاء.
التوصيات
لحل المشكلة، قم بتحديث نواة Linux إلى الإصدار 6.6.74 أو أحدث. كحل مؤقت، ضع في اعتبارك تعطيل الدالة
dm array cursor end() حتى يتوفر تصحيح. قم بتقييد الوصول إلى الدالة المعرضة للثغرة dm bm read lock() لتقليلقابلية الاستغلال
استغلال
إصلاح
التأثيرات
الباحثون
المورّدون
المنتجات المتأثرة
وجدت خطأً في الوصف؟ لديك ما تضيفه؟ لا تتردد في مراسلتنا 👾