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.

مسؤول

Linux

حجز

26/08/2026

إفشاء

04/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-398905

EPSS

0.00000

KEV

لا

النشاطات

منخفض

المصادر

Do you know our Splunk app?

Download it now for free!