CVE-2025-37918 in Linuxالمعلومات

الملخص

بحسب VulDB • 22/06/2026

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

بلوتوث: btusb: تجنب إلغاء مرجع المؤشر الفارغ (NULL pointer dereference) في دالة skb_dequeue()

يمكن أن يحدث إلغاء مرجع لمؤشر فارغ في الدالة `skb_dequeu()` عند معالجة سجل انهيار البرنامج الثابت (firmware crash dump) الخاص بـ QCA على جهاز WCN7851 (0489:e0f3).

[ 93.672166] Bluetooth: hci0: ACL memdump size(589824)
[ 93.672475] BUG: kernel NULL pointer dereference, address: 0000000000000008
[ 93.672517] Workqueue: hci0 hci_devcd_rx [bluetooth]
[ 93.672598] RIP: 0010:skb_dequeue+0x50/0x80

تنشأ المشكلة من قيام الدالة `handle_dump_pkt_qca()` بإرجاع القيمة 0 حتى عند معالجة حزمة السجل (dump packet) بنجاح. والسبب في ذلك هو إعادة توجيهها بشكل غير صحيح لقيمة الإرجاع الخاصة بـ `hci_devcd_init()` (التي ترجع 0 عند النجاح). ونتيجة لذلك، يفترض المتصل (`btusb_recv_acl_qca()` أو `btusb_recv_evt_qca()`) أن الحزمة لم تتم معالجتها ويقوم بتوجيهها إلى `hci_recv_frame()`، مما يؤدي إلى استدعاء مبكر لـ `kfree()` على كائن skb.

لاحقاً، تحاول الدالة `hci_devcd_rx()` نزع نفس كائن skb من قائمة الانتظار الخاصة بالسجل (dump queue)، مما ينتج عنه إلغاء مرجع لمؤشر فارغ.

تم إصلاح هذه المشكلة عن طريق: 1. جعل الدالة `handle_dump_pkt_qca()` ترجع 0 عند النجاح وقيمة خطأ سالبة (negative errno) عند الفشل، بما يتوافق مع اتفاقيات النواة. 2. تقسيم اكتشاف حزم السجل إلى دوال منفصلة لحزم ACL وحزم الأحداث لتحسين البنية والقراءة.

يضمن هذا التعديل التعرف على حزم السجل واستهلاكها بشكل صحيح، وتجنب المعالجة المزدوجة ومنع الوصول لمؤشر فارغ (NULL pointer access).

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

مسؤول

Linux

حجز

16/04/2025

إفشاء

20/05/2025

الاعتدال

تمت الموافقة

إدخال

VDB-309716

EPSS

0.00237

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you need the next level of professionalism?

Upgrade your account now!