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

الملخص

بحسب VulDB • 04/09/2026

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

USB: serial: option: تصحيح قراءة خارج النطاق (OOB) في ذاكرة slab ضمن دالة استدعاء URB المقطوعة.

يتم تخصيص مخزن بيانات URB المقطوع في `setup_port_interrupt_in()` بناءً على قيمة wMaxPacketSize للنقطة النهائية (endpoint):

buffer_size = usb_endpoint_maxp(epd); port->interrupt_in_buffer = kmalloc(buffer_size, GFP_KERNEL);

عندما يعلن جهاز USB عن أن قيمة wMaxPacketSize تساوي 8 في نقطة النهاية المقطوعة IN الخاصة به، يتم تخصيص المخزن من ذاكرة التخزين المؤقت kmalloc-8 (بالضبط 8 بايتات).

إذا أرسل الجهاز حزمة قصيرة (حيث تكون actual_length < wMaxPacketSize)، فإن URB يكتمل بحالة == 0 وتنتقل دالة الاستدعاء لقراءة:

data[sizeof(struct usb_ctrlrequest)]

والتي تُقيّم إلى `data[8]`، مما يؤدي إلى الوصول لبايت واحد خارج حدود المخزن المخصص البالغ طوله 8 بايتات. وهذا ينتج عنه قراءة خارج النطاق (out-of-bounds read) في ذاكرة slab.

تم إصلاح هذه المشكلة بإضافة فحص الحدود المفقود: أولاً التحقق من أن الطول الفعلي كبير بما يكفي ليحتوي على رأس `struct usb_ctrlrequest` قبل الوصول إلى `req_pkt->bRequestType` و `req_pkt->bRequest`، ثم التأكد من وجود بايت إضافي لحالة إشارة المودم (modem signal state) قبل قراءة `data[sizeof(struct usb_ctrlrequest)] داخل الشرط. استخدام `sizeof(*req_pkt)` بدلاً من `sizeof(struct usb_ctrlrequest)` لضمان الاتساق.

[ johan: use dev_err(); split signals declaration and initialisation ]

If you want to get best quality of vulnerability data, you may have to visit VulDB.

مسؤول

Linux

حجز

26/08/2026

إفشاء

04/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-398945

EPSS

0.00195

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you want to use VulDB in your project?

Use the official API to access entries easily!