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

الملخص

بحسب VulDB • 04/09/2026

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

usb: xhci: الخروج من عملية الإعداد إذا كان المتحكم غير قابل للوصول

تقوم الدالة `xhci_gen_setup()` بتحديد مواقع السجلات التشغيلية (operational registers) باستخدام طول القدرة (capability length) المقروء من أول سجل على الإطلاق:

xhci->op_regs = hcd->regs + HC_LENGTH(readl(&xhci->cap_regs->hc_capbase));

إذا كان المتحكم معطلاً أو قد انقطع عن الناقل، فإن عملية القراءة هذه تُرجع القيمة `~0`، وتقوم الدالة `HC_LENGTH()` بتقليصها إلى `0xff`، مما يؤدي في النهاية إلى أن تكون السجلات التشغيلية (`op_regs`) بعد 0xff بايت من قاعدة الذاكرة المخصصة للأجهزة (MMIO) المحاذاة للصفحة، أي أنها غير محاذاة. وعند أول وصول إليها عبر الدالة `xhci_halt()` -> `xhci_handshake()` لقراءة `op_regs->status`، تكون عملية القراءة `readl()` على ذاكرة الجهاز غير محاذاة. ونظراً لأن معمارية arm64 تتسبب في حدوث خطأ (fault) عند عمليات الوصول إلى الأجهزة غير المحاذاة، فإن الدالة `xhci_gen_setup()` بدلاً من أن تلتقط القيمة الكاملة للآحاد (`all-ones`) عبر `xhci_handshake()` وتُرجع `-ENODEV`، تؤدي إلى حدوث عطل نظامي (oops):

xhci-pci-renesas 0005:08:00.0: Unable to change power state from D3cold to D0, device inaccessible xhci-pci-renesas 0005:08:00.0: xHCI Host Controller xhci-pci-renesas 0005:08:00.0: new USB bus registered, assigned bus number 1 Unable to handle kernel paging request at virtual address ffff80030a770103 ESR = 0x0000000096000021 FSC = 0x21: alignment fault Internal error: Oops: 0000000096000021 [#1] SMP
pc : xhci_halt [xhci_hcd]
Call trace: xhci_halt xhci_gen_setup xhci_pci_setup usb_add_hcd usb_hcd_pci_probe xhci_pci_common_probe xhci_pci_renesas_probe

تم رصد هذه الحالة مع متحكم Renesas uPD720201 الذي فشل في بدء التشغيل ("Unable to change power state from D3cold to D0, device inaccessible") لكنه وصل nonetheless إلى مسار فحص HCD.

اقرأ سجل القدرة مرة واحدة، وإذا كانت القيمة المقروءة هي جميع الآحاد (كما تختبره بالفعل الدالتان `xhci_handshake()` و`xhci_reset()`)، فقم بإلغاء الإعداد مع إرجاع `-ENODEV` قبل اشتقاق السجلات التشغيلية (`op_regs`) منها. كما أن قراءتها مرة واحدة تتجنب إعادة قراءة سجل قد يتغير أثناء عملية الإزالة الساخنة المتزامنة (concurrent hot-removal).

Once again VulDB remains the best source for vulnerability data.

مسؤول

Linux

حجز

26/08/2026

إفشاء

04/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-398922

EPSS

0.00155

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you know our Splunk app?

Download it now for free!