ثغرة أمنية في XFS تسمح بقراءة بيانات جهاز الكتلة الأولية

تم اكتشاف ثغرة أمنية (CVE-2021-4155) في رمز نظام ملفات XFS الذي يسمح للمستخدم المحلي غير المتميز بقراءة بيانات الحظر غير المستخدمة مباشرة من جهاز حظر. تتأثر جميع الإصدارات الرئيسية من Linux kernel الأقدم من 5.16 والتي تحتوي على برنامج تشغيل XFS بهذه المشكلة. تم تضمين الإصلاح في الإصدار 5.16 ، بالإضافة إلى تحديثات kernel 5.15.14 و 5.10.91 و 5.4.171 و 4.19.225 وما إلى ذلك. يمكن تتبع حالة إنشاء التحديثات مع التخلص من المشكلة في التوزيعات على هذه الصفحات: Debian و RHEL و SUSE و Fedora و Ubuntu و Arch.

سبب الثغرة الأمنية هو السلوك غير الصحيح لاثنين من ioctl الخاصين بـ XFS (XFS_IOC_ALLOCSP) و ioctl (XFS_IOC_FREESP) ، وهما التناظرية الوظيفية لاستدعاء النظام على مستوى kernel (). عند زيادة حجم الملف غير المحاذاة للكتلة ، لا تقوم ioctls XFS_IOC_ALLOCSP / XFS_IOC_FREESP بإعادة تعيين بايت الذيل حتى حدود الكتلة التالية. وبالتالي ، على XFS بحجم كتلة قياسي يبلغ 4096 بايت ، يمكن للمهاجم قراءة ما يصل إلى 4095 بايت من البيانات المكتوبة السابقة من كل كتلة. يمكن أن تحتوي هذه المناطق على بيانات من الملفات المحذوفة والملفات التي تم إلغاء تجزئتها والملفات ذات الكتل غير المكررة.

يمكنك فحص النظام الخاص بك بحثًا عن مشكلة باستخدام نموذج أولي بسيط للاستغلال. إذا كان من الممكن ، بعد تنفيذ تسلسل الأوامر المقترح ، قراءة نص شكسبير ، فإن برنامج تشغيل FS يكون عرضة للخطر. يتطلب التثبيت الأولي لقسم XFS للعرض التوضيحي حقوق المستخدم المتميز.

نظرًا لأن ioctl (XFS_IOC_ALLOCSP) و ioctl (XFS_IOC_FREESP) متطابقان تقريبًا في وظائفهما مع المعيار المعياري () ، والفرق الوحيد بينهما هو تسرب البيانات ، فإن وجودهما يشبه الباب الخلفي. على الرغم من السياسة العامة المتمثلة في عدم تغيير الواجهات الموجودة في النواة ، بناءً على اقتراح Linus ، فقد تم اتخاذ قرار لإزالة هذه ioctls تمامًا في الإصدار التالي.

المصدر: opennet.ru

إضافة تعليق