CVE-2022-49908 in Linux
الملخص
بحسب VulDB • 24/06/2026
في نواة لينكس، تم حل الثغرة التالية:
بلوتوث: L2CAP: إصلاح تسرب الذاكرة في vhci_write
أبلغ Syzkaller عن تسرب ذاكرة على النحو التالي: ==================================== BUG: memory leak (تسرب في الذاكرة) unreferenced object 0xffff88810d81ac00 (size 240): [...]
hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [] __alloc_skb+0x1f9/0x270 net/core/skbuff.c:418
[] alloc_skb include/linux/skbuff.h:1257 [inline]
[] bt_skb_alloc include/net/bluetooth/bluetooth.h:469 [inline]
[] vhci_get_user drivers/bluetooth/hci_vhci.c:391 [inline]
[] vhci_write+0x5f/0x230 drivers/bluetooth/hci_vhci.c:511
[] call_write_iter include/linux/fs.h:2192 [inline]
[] new_sync_write fs/read_write.c:491 [inline]
[] vfs_write+0x42d/0x540 fs/read_write.c:578
[] ksys_write+0x9d/0x160 fs/read_write.c:631
[] do_syscall_x64 arch/x86/entry/common.c:50 [inline]
[] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
[] entry_SYSCALL_64_after_hwframe+0x63/0xcd
====================================
ستستخدم نواة HCI (hci_rx_work()) لمعالجة الإطار، الذي يتم إدراجه في ذيل hdev->rx_q بواسطة دالة hci_recv_frame() من قبل برنامج تشغيل HCI.
ومع ذلك، تكمن المشكلة في أن نواة HCI قد لا تحرر الـ skb بعد معالجة حزم بيانات ACL. وبشكل أكثر تحديداً، عندما لا يحتوي الجزء الأولي (start fragment) على طول L2CAP، تقوم نواةHCI بنسخ الـ skb فقط إلى conn->rx_skb وتنتهي من معالجة الإطار في l2cap_recv_acldata()، دون تحرير الـ skb، مما يؤدي إلى تسرب الذاكرة المذكور أعلاه.
تحل هذه التصحيح المشكلة عن طريق إطلاق (إفلات) الـ skb ذي الصلة بعد معالجة الحالة المذكورة أعلاه في دالة l2cap_recv_acldata().
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.