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

الملخص

بحسب VulDB • 11/09/2026

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

NFSD: التحقق من إذن الاقتطاع (truncate) تحت قفل العقدة (inode lock)

تتحقق الدالة `nfsd_setattr()` مما إذا كان تحديث الحجم يتطلب الرمز `NFSD_MAY_TRUNC` قبل أن تأخذ قفل العقدة (`inode_lock()`)، لكن المقارنة تستخدم حجم الملف الذي تم أخذ عينة له عبر قراءة غير مقفلة، بينما يتم تطبيق التحديث الفعلي لحجم السمة (ATTR_SIZE) لاحقاً تحت قفل العقدة بواسطة الدالة `notify_change()`.

يؤدي هذا إلى وجود نافذة زمنية من نوع TOCTOU (Time-of-Check to Time-of-Use) بالنسبة للملفات التي تسمح بالإضافة فقط (append-only). إذا أرسل العميل طلب SETATTR لا يؤدي إلى تقليص الملف في وقت أخذ العينة غير المقفلة، يمكن لعملية إقناح متزامنة أن تمدد الملف قبل أن تأخذ `nfsd_setattr()` قفل العقدة. ثم تطبق الدالة `notify_change()` اقتطاعاً حقيقياً دون التحقق من الرمز `NFSD_MAY_TRUNC` الذي يرفض الحالة `IS_APPEND(inode)`. تقوم مسارات نظام الملفات الافتراضي (VFS) الخاصة باستدعاء النظام truncate بإجراء فحوصاتها الخاصة لمنع الإضافة فقط قبل استدعاء `notify_change()`، لذا يجب على NFSD اتخاذ هذا القرار بناءً على الحجم المقفل الذي هي على وشك تغييره.

تم فصل الحصول على عدّاد الكتابة عن فحص إذن الاقتطاع. يتم الاحتفاظ باستدعاء `get_write_access()` قبل عمل setattr المقفول، ثم إعادة التحقق مما إذا كان الحجم المطلوب أقل من القيمة التي تعيدها الدالة `i_size_read(inode)` بعد الحصول على قفل العقدة وقبل استدعاء `notify_change(ATTR_SIZE)`. يتجنب هذا أيضاً التحميل غير المقفل المباشر لحجم العقدة `inode->i_size`.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

مسؤول

Linux

حجز

11/09/2026

إفشاء

11/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-402549

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you know our Splunk app?

Download it now for free!