در نسخههای اخیر هسته لینوکس (Linux Kernel)، یک آسیبپذیری امنیتی در بخش drm/xe شناسایی و برطرف شده است. این مشکل مربوط به مدیریت حافظه در فرآیند پاکسازی devcoredump است.
جزئیات فنی آسیبپذیری
در تابع xe_devcoredump_snapshot_free()، متغیر ss->gt ممکن است در شرایطی که Snapshot بهطور کامل مقداردهی نشده باشد (بهعنوان مثال زمانی که عملیات پاکسازی بدون ثبت قبلی Capture اجرا شود)، مقدار NULL داشته باشد. این وضعیت منجر به بروز خطای Null Pointer Dereference میشد.
راهکار اصلاحی
برای رفع این مشکل، فراخوانی تابع xe_guc_capture_put_matched_nodes() اکنون با استفاده از ماکروی IS_ERR_OR_NULL() محافظت شده است تا از دسترسی به اشارهگرهای تهی جلوگیری شود. همچنین در تابع xe_devcoredump_free()، مدیریت کارهای به تعویق افتاده (Deferred Work) به گونهای اصلاح شده است که تنها در صورت ثبت موفقیتآمیز Coredump، عملیات لغو کار (cancel_work) اجرا گردد.