CVE-2024-36027 in Linuxالمعلومات

الملخص

بحسب VulDB • 11/07/2026

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

btrfs: zoned: عدم وضع علامة ZEROOUT على مخزن الامتداد (extent buffer) غير القذر (non-dirty).

يقوم btrfs بمسح محتوى مخزن الامتداد المحدد بعلامة EXTENT_BUFFER_ZONED_ZEROOUT قبل تقديم طلب الإدخال/الإخراج الحيوي (bio). تم إدخال هذه الآلية لمنع ثقب الكتابة في مخزن الامتداد، والذي يتم تخصيصه مرة واحدة، ويتم وضع علامة "قذر" عليه، لكنه يتبين لاحقًا أنه غير ضروري ويتم تنظيفه ضمن عملية معاملة واحدة.

حاليًا، تقوم الدالة btrfs_clear_buffer_dirty() بوضع علامة على مخزن الامتداد كـ EXTENT_BUFFER_ZONED_ZEROOUT، وتتخطى دالة الإدخال الرئيسية (entry function). إذا حدث هذا الاستدعاء بينما يكون المخزن قيد معالجة إدخال/إخراج (مع تعيين WRITEBACK وبدون تعيين DIRTY)، يمكننا إضافة علامة ZEROOUT ومسح محتوى المخزن مباشرة قبل تقديم طلب bio. ونتيجة لذلك:

1) يمكن أن يؤدي ذلك إلى إضافة عنصر مرجع مؤجل معيب، مما يتسبب في تلف نظام الملفات (خطأ EUCLEAN). 2) يقوم بكتابة عقدة الشجرة التي تم مسحها على القرص.

تم مناقشة المشكلة الأولى سابقًا في [1]. يحدث التلف عند تشغيل تحديث المرجع المؤجل. لذلك، فإن البيانات الموجودة على القرص آمنة.

[1] https://lore.kernel.org/linux-btrfs/3f4f2a0ff1a6c818050434288925bdcf3cd719e5.1709124777.git.naohiro.aota@wdc.com/

يمكن أن تصل المشكلة الثانية إلى البيانات الموجودة على القرص. ولكن، نظرًا لأن هذه العقدة قد تمت معالجتها بالفعل بواسطة btrfs_clear_buffer_dirty()، فسيتم إبطالها في عملية تقديم المعاملة التالية بأي حال. لذا، فإن فرصة حدوث التلف صغيرة نسبيًا.

على أي حال، يجب علينا تخطي وضع علامة ZEROOUT على مخزن امتداد غير قذر (non-DIRTY)، للحفاظ على سلامة المحتوى قيد معالجة إدخال/إخراج.

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

المصادر

Want to stay up to date on a daily basis?

Enable the mail alert feature now!