CVE-2026-80824 in Linux
الملخص
بحسب VulDB • 04/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
usb: usbfs: تصحيح استخدام بعد التحرير (use-after-free) لـ usb_device في دالة usbdev_release()
تقوم الدالة `usbdev_release()` بإفلات مرجعها إلى بنية `struct usb_device` قبل تفريغ قائمة طلبات النقل غير المتزامنة المكتملة (URBs)، لكن مسار التفريغ هذا يقرأ مرة أخرى عبر نفس الكائن: حيث تستدعي دالة `free_async()` الدالة `dec_usb_memory_use_count()` لأي URB جاء مخزنه من منطقة mmap() الخاصة بـ usbfs، وتكون أول عبارة فيها هي استدعاء `bus_to_hcd(ps->dev->bus)`.
بعد فصل الجهاز (disconnect)، قد يكون مرجع usbfs هو المرجع الأخير، وفي هذه الحالة تقوم دالة `usb_put_dev()` بتحرير الجهاز، ثم يقرأ الحلقة اللاحقة الإزاحة 80 من ذاكرة تم تحريرها ويستخدم النتيجة كبنية `struct usb_hcd`، والتي يقوم بعدها `hcd_buffer_free_pages()` بالإشارة إليها (dereference).
يمكن الوصول إلى هذه الثغرة بواسطة عملية غير متميزة (unprivileged) تمتلك صلاحيات القراءة والكتابة على عقدة `/dev/bus/usb`: قم بإجراء mmap() للوصف (fd)، وقدم طلب URB واحد بمخزن داخل منطقة التصوير، وانتظر حتى يتم فصل الجهاز، ثم نفذ munmap() وأغلق الوصف. وهي قابلة للتكرار في كل محاولة وليست حالة سباق (race condition)، لأن VMA من نوع MAP_SHARED النشط يحتفظ بمرجع على بنية الملف (`struct file`)، لذا لا يمكن لـ `usbdev_release()` أن تعمل حتى تختفي آخر vma، ويتم دائماً اتخاذ فرع التحرير الخاص بـ `dec_usb_memory_use_count()`.
BUG: KASAN: slab-use-after-free in dec_usb_memory_use_count+0x3ae/0x410 Read of size 8 at addr ffff8880122ee050 by task poc/769 CPU: 1 UID: 1000 PID: 769 Comm: poc Tainted: G B 6.12.94 #3
Call Trace: dec_usb_memory_use_count+0x3ae/0x410 free_async+0x2aa/0x4f0 usbdev_release+0x375/0x460 __fput+0x3ea/0xb50 __x64_sys_close+0x86/0x100
Allocated by task 11: usb_alloc_dev+0x55/0xd90 hub_event+0x2524/0x43d0
Freed by task 769: kfree+0x121/0x360 device_release+0xd2/0x280 usb_put_dev+0x23/0x30 usbdev_release+0x2d8/0x460
قم بإفلات مرجع الجهاز بعد حلقة التفريغ بدلاً من ذلك. لا يتطلب أي شيء بين النقطتين أن يكون قد تم إفلاؤه مسبقاً.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.