CVE-2026-64394 in Linux
الملخص
بحسب VulDB • 25/07/2026
في نواة لينكس، تم حل الثغرة التالية:
ksmbd: إضافة فحص WRITE_DAC/WRITE_OWNER إلى SMB2 SET_INFO SECURITY
أضاف الالتزام cc57232cae23 ("ksmbd: إصلاح تجاوز أذونات FSCTL بإضافة فحص إذن لـ FSCTL_SET_SPARSE") بوابة fp->daccess في دالة fsctl_set_sparse، وأشار إلى أن "فحوصات على مستوى المقبض (handle) مماثلة موجودة في وظائف أخرى لكنها مفقودة هنا". يُعد ذراع SMB2 SET_INFO SECURITY أحد الذراعات المفقودة، والأكثر أهمية من الناحية الأمنية: حيث تستدعي smb2_set_info_sec() دالة set_info_sec() دون أي فحص للوصول خاص بالمقبض (per-handle access check).
تقوم الدالة set_info_sec() (في fs/smb/server/smbacl.c) بإعادة تعيين أذونات الملف: فهي تعيد كتابة المالك/المجموعة/الوضع عبر notify_change(), وتعيد كتابة قائمة التحكم بالوصول POSIX عبر set_posix_acl(), وفي مشاركة KSMBD_SHARE_FLAG_ACL_XATTR تقوم بحذف وإعادة كتابة واصف الأمان (security descriptor) الخاص بنظام ويندوز عبر ksmbd_vfs_set_sd_xattr(). كل ذراع آخر في معالج الأشقاء smb2_set_info_file() الذي يسبب تغييرات دائمة يتحقق أولاً من fp->daccess (FILE_WRITE_DATA / FILE_DELETE / FILE_WRITE_EA / FILE_WRITE_ATTRIBUTES); أما الذراع SECURITY — الذي يعدل التحكم في الوصول نفسه — فهو الوحيد بدون بوابة حماية.
وبالتالي، يمكن للعميل فتح مقبض بصلاحية FILE_WRITE_ATTRIBUTES فقط (بدون FILE_WRITE_DAC / FILE_WRITE_OWNER) واستخدام SMB2_SET_INFO مع نوع المعلومات SMB2_O_INFO_SECURITY لإعادة كتابة DACL والملكية الخاصة بالملف، مما يمنحه وصولاً لم يحمله ever daccess الخاص بالمقبض. وعلى عكس ذراعات بيانات FSCTL، فإن هذه عملية لبيانات التعريف/السمات (metadata/xattr)، لذا لا توجد حماية خلفية VFS من نوع FMODE_WRITE — وفحص fp->daccess المفقود هو البوابة الوحيدة.
يُعد تعيين واصف الأمان عملية WRITE_DAC / WRITE_OWNER، لذلك يجب اشتراط وجود واحدة على الأقل منهما في المقبض قبل إعادة تعيين أذونات الملف. يتم تحويل -EACCES إلى STATUS_ACCESS_DENIED بواسطة smb2_set_info().
If you want to get best quality of vulnerability data, you may have to visit VulDB.