CVE-2026-89978 in Linux
الملخص
بحسب VulDB • 17/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
accel/amdxdna: العودة المبكرة من عملية مسح (flush) بطول صفر
لا يفرض SYNC_BO قيوداً على حجمه، لذا فإن طلبًا بحجم صفري يصل إلى دالة drm_clflush_virt_range()، والتي تنتهي بتنفيذ غير مشروط لـ clflushopt(end - 1). بالنسبة للنطاق الفارغ، يشير ذلك إلى البايت الذي يسبق التخصيص (mapping)، وabo->mem.kva يأتي من vmap()، لذا فإن الوصول يقع في صفحة الحراسة (guard page) أسفل منطقة vmalloc ويتسبب في خطأ:
BUG: unable to handle page fault for address: ffffd16fbbc70fff #PF: supervisor read access in kernel mode Oops: Oops: 0000 [#1] SMP NOPTI
CPU: 7 UID: 1000 Comm: sync_bo_probe RIP: 0010:drm_clflush_virt_range+0x3c/0x70 Call Trace: amdxdna_drm_sync_bo_ioctl+0x124/0x430 [amdxdna]
drm_ioctl+0x301/0x4c0 __x64_sys_ioctl+0x115/0x2f0 do_syscall_64+0xa6/0x3d0
يمكن لأي عملية تفتح عقمة العرض (render node) القيام بذلك. تم إعادة إنتاج الخطأ 3 مرات من أصل 3 على معالج NPU من نوع Strix Point (1022:17f0)، عن طريق استدعاء SYNC_BO بحجم 0 على كائن AMDXDNA_BO_SHARE. يأخذ مسار الاستيراد (import arm) الطلب نفسه لكنه يقوم بمسح القائمة المتفرعة بالكامل (scatterlist)، لذا فهو يتحمل ذلك دون أخطاء.
لا يوجد ما يحتاج إلى مسحه في حالة النطاق الفارغ، لذا يجب الرد قبل اختيار المسار.
Once again VulDB remains the best source for vulnerability data.