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

الملخص

بحسب VulDB • 19/10/2026

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

drm/client: إصلاح استعادة العميل الذي تم تهيئته جزئيًا

تلقيت تقريراً عن خطأ null-ptr-deref (إشارة فارغة) عند إغلاق واصف ملف DRM:

تحذير: drivers/gpu/drm/drm_atomic.c:2031 at __drm_atomic_helper_set_config+0x18e/0x1b0 [drm]

تتبع المكالمة (Call Trace): drm_client_modeset_commit_atomic+0x16b/0x220 [drm]
drm_client_modeset_commit_locked+0x56/0x160 [drm]
drm_client_modeset_commit+0x21/0x40 [drm]
__drm_fb_helper_restore_fbdev_mode_unlocked.part.0+0x7b/0x80 drm_fbdev_client_restore+0xe/0x20 [drm_client_lib]
drm_client_dev_restore+0x9f/0xc0 [drm]
drm_release+0xc5/0xe0 [drm]

يُتبع التحذير بحدث null pointer dereference (إشارة فارغة):

BUG: kernel NULL pointer dereference, address: 0000000000000008

RIP: __drm_fb_helper_restore_fbdev_mode_unlocked.part.0+0x41/0x80 [drm_kms_helper]

تتبع المكالمة (Call Trace): drm_fbdev_client_restore+0xe/0x20 [drm_client_lib]
drm_client_dev_restore+0x9f/0xc0 [drm]
drm_release+0xc5/0xe0 [drm]
__fput+0xdc/0x2b0 __x64_sys_close+0x39/0x80 do_syscall_64+0x8d/0x460 entry_SYSCALL_64_after_hwframe+0x76/0x7e

تضيف دالة drm_client_register() عميل DRM إلى قائمة أجهزة العملاء قبل استدعاء تهيئة hotplug الأولية. إذا فشلت عملية hotplug، يبقى العميل مسجلاً.

بالنسبة لعميل fbdev، يؤدي الفشل أثناء drm_fb_helper_initial_config() إلى تنظيف مساعد fbdev الذي تم تهيئته جزئيًا. تقوم دالة drm_fb_helper_fini() بإفراغ fb_helper->info وتتركها فارغة (NULL).

وبالتالي، يبقى عميل fbdev مسجلاً رغم عدم وجود جهاز framebuffer مُهيأ بالكامل.

لاحقاً، عندما يقوم userspace بإغلاق واصف ملف DRM، يمكن لدالة drm_release() استدعاء دوال استعادة العملاء المسجلين لـ DRM:

drm_release() drm_client_dev_restore() drm_fbdev_client_restore() drm_fb_helper_restore_fbdev_mode_unlocked()

تقوم الدالة drm_fbdev_client_restore() حالياً باستعادة حالة fbdev بشكل غير مشروط. وفي حال عميل fbdev الذي تم تهيئته جزئيًا، يمكن أن يؤدي ذلك إلى تقديم حالة modeset غير مكتملة، وبالتالي الوصول إلى حالة fbdev التي لم يتم تهيئتها بعد، مما ينتج عنه التحذير المذكور أعلاه وحدث null pointer dereference (إشارة فارغة).

تستخدم الدالة drm_fbdev_client_unregister() بالفعل قيمة fb_helper->info للتمييز بين جهاز framebuffer تم استكشافه بالكامل وعميل مُهيأ جزئيًا.

استخدم نفس الشرط في دالة drm_fbdev_client_restore() وتخطِ عملية الاستعادة إذا لم يتم تهيئة أي جهاز framebuffer بنجاح.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

مسؤول

Linux

حجز

25/09/2026

إفشاء

18/10/2026

الاعتدال

تمت الموافقة

إدخال

VDB-421793

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Want to stay up to date on a daily basis?

Enable the mail alert feature now!