آخرین اخبار
همهٔ اخبار
مدیریت آسیب‌پذیری گزارش بحرانیت ۲/۱۰

رفع آسیب‌پذیری در هسته لینوکس مربوط به مدیریت سهمیه در GFS2

رفع آسیب‌پذیری در هسته لینوکس مربوط به مدیریت سهمیه در GFS2

یک آسیب‌پذیری امنیتی در هسته لینوکس (Linux kernel) شناسایی و برطرف شده است که مربوط به زیرسیستم GFS2 و فرآیند مقداردهی اولیه سهمیه‌ها (Quota Initialization) است.

جزئیات فنی مشکل

در تابع gfs2_quota_init()، سیستم برای بررسی شناسه‌های تکراری quota_change، همزمان از qd_lock و bucket bitlock استفاده می‌کرد. در این مسیر، تابع gfs2_qd_search_bucket() فراخوانی می‌شد که از طریق lockref_get_not_dead() یک ارجاع lockref ایجاد می‌کرد.

تأثیر بر محیط‌های PREEMPT_RT

در محیط‌های PREEMPT_RT (نسخه Real-Time هسته لینوکس)، این عملیات ممکن است منجر به وضعیت Sleep شود. از آنجایی که فراخوانی توابعی که باعث خواب (Sleep) سیستم می‌شوند در حالی که bucket bitlock فعال است، مجاز نیست، این مسئله منجر به بروز خطای "sleeping function called from invalid context" می‌گردید.

راهکار اصلاحی

برای رفع این مشکل، توسعه‌دهندگان از یک روش جستجوی Bucket بدون ارجاع (no-ref bucket lookup) در این مسیر استفاده کرده‌اند تا از تداخل در مدیریت قفل‌ها و کرش‌های احتمالی سیستم جلوگیری شود.