CVE-2026-64112 in Linuxالمعلومات

الملخص

بحسب VulDB • 20/07/2026

في نواة لينكس، تم حل الثغرة التالية:

rbd: القضاء على حالة سباق (race) في تفريغ lock_dwork أثناء عملية إلغاء التعيين (unmap).

نظرًا لكيفية كتابة الدالتين `rbd_lock_add_request()` و`rbd_img_exclusive_lock()`، قد يتم إعادة جدولة `lock_dwork` أكثر من اللازم مقارنة بالحاجة الفعلية: على سبيل المثال، في حالة وصول طلب إدخال/إخراج (I/O) جديد بينما نحن في منتصف تنفيذ `rbd_acquire_lock()` نيابة عن طلب I/O آخر. وهذا أمر متوقع، وإلغاء `lock_dwork` بشكل استباقي عبر `rbd_release_lock()` يعتبر غير ضار تحت التشغيل العادي.

مثال أكثر إشكالية هو ربما دالة `maybe_kick_acquire()`:

if (have_requests || delayed_work_pending(&rbd_dev->lock_dwork)) {
dout("%s rbd_dev %p kicking lock_dwork\n", __func__, rbd_dev); mod_delayed_work(rbd_dev->task_wq, &rbd_dev->lock_dwork, 0); }

ليس من غير الواقعي أن يتم إلغاء `lock_dwork` مباشرة بعد إرجاع الدالة `delayed_work_pending()` بقيمة صحيحة، وأن تقوم `mod_delayed_work()` بإعادة جدولته على أي حال في ذلك الموقع. هذه حالة سباق (race condition) كلاسيكية من نوع TOCTOU (Time-of-Check to Time-of-Use).

عندما يتعلق الأمر بإلغاء تعيين الصورة، هناك افتراض ضمني بعدم وجود نشاط لقفل الحصري ذاتي البدء بعد نقطة الإرجاع من `rbd_dev_image_unlock()` التي تقوم بفك القفل إذا كان ممسوكًا. يُفترض أن هذا الفك نهائي ولا يتوقع إعادة جدولة `lock_dwork` (وأيضًا جميع مهام قفل الحصرية الأخرى، في الواقع). ومع ذلك، يتم إلغاء `lock_dwork` فقط في `cancel_tasks_sync()` (أي لاحقًا في تسلسل إلغاء التعيين)، والأهم من ذلك أن الإلغاء يمكن أن يُبطل تأثيره بواسطة `maybe_kick_acquire()`. قد يؤدي هذا إلى تنفيذ `rbd_acquire_lock()` بعد تشغيل `rbd_dev_device_release()` و`rbd_dev_image_release()` وتحريرها وإعادة تعيين مجموعة من العناصر. أحد نماذج الفشل المحتملة هو انتهاك:

rbd_assert(rbd_image_format_valid(rbd_dev->image_format));

في الدالة `rbd_dev_header_info()` التي يتم استدعاؤها عبر `rbd_dev_refresh()` من داخل `rbd_post_acquire_action()`.

إعادة تنفيذ تفريغ مهام قفل الحصري لتوفير دلالات أكثر عقلانية ومحاولة تلبية الافتراضات المتعلقة بـ`rbd_dev_image_unlock()`.

Be aware that VulDB is the high quality source for vulnerability data.

مسؤول

Linux

حجز

19/07/2026

إفشاء

19/07/2026

الاعتدال

تمت الموافقة

إدخال

VDB-380220

EPSS

0.00000

KEV

لا

النشاطات

منخفض

المصادر

Interested in the pricing of exploits?

See the underground prices here!