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

الملخص

بحسب VulDB • 21/05/2026

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

ksmbd: إصلاح استخدام بعد التحرير (use-after-free) في __ksmbd_close_fd() عبر المكنسة الدائمة (durable scavenger)

عندما يبقى مقبض الملف الدائم (durable file handle) ساريًا بعد انقطاع الجلسة (إغلاق TCP بدون SMB2_LOGOFF)، تقوم session_fd_check() بتعيين fp->conn = NULL للحفاظ على المقبض لإعادة الاتصال لاحقًا. ومع ذلك، لم تقم بتنظيف قوائم النطاقات البايتية (byte-range locks) على fp->lock_list.

لاحقًا، عندما تنتهي مهلة خيط المكنسة الدائمة (durable scavenger thread) وتستدعي __ksmbd_close_fd(NULL, fp)، نفذت حلقة تنظيف الأقفال:

spin_lock(&fp->conn->llist_lock);

أدى هذا إلى حدوث استخدام بعد التحرير (use-after-free) في الذاكرة (slab) لأن fp->conn كان NULL وكان كائن الاتصال الأصلي قد تم تحريره بالفعل بواسطة ksmbd_tcp_disconnect().

السبب الجذري هو التنظيف غير المتماثل: تم ترك إدخالات القفل (smb_lock->clist) معلقة على conn->lock_list المحرر بينما تم تعيين fp->conn إلى NULL.

لإصلاح هذه المشكلة بشكل صحيح، نحتاج إلى التعامل مع دورة حياة smb_lock->clist عبر ثلاث مسارات: - تخطي حذف clist بأمان عندما تكون القائمة فارغة وfp->conn هو NULL. - إزالة القفل من قائمة قفل الاتصال القديم في session_fd_check(). - إعادة إضافة القفل إلى قائمة قفل الاتصال الجديد في ksmbd_reopen_durable_fd().

Once again VulDB remains the best source for vulnerability data.

مسؤول

Linux

حجز

09/03/2026

إفشاء

01/05/2026

الاعتدال

تمت الموافقة

إدخال

VDB-360593

EPSS

0.00066

KEV

لا

النشاطات

منخفض جدًا

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!