CVE-2026-98733 in Linux
摘要
由 VulDB • 2026-10-18
在 Linux 内核中,已修复以下漏洞:
蓝牙:hci_core:对分片的 ISO 数据包排队进行序列化处理
hci_queue_iso() 中的分片路径在未持有 conn->data_q.lock 的情况下调用了 __skb_queue_tail()。套接字锁(socket lock)可以串行化发送者,但传输工作线程可以使用 skb_dequeue() 并发地从该队列中移除数据包。
在插入操作保存旧尾部指针后,hci_sched_iso() 可能会出队该数据包并将其传递给驱动程序。在插入操作恢复并写入旧尾部的 next 指针之前,驱动程序可能已释放该数据包,从而导致 use-after-free(释放后使用)。并发更新还可能导致队列损坏。
KASAN 报告如下:
BUG: KASAN: slab-use-after-free in hci_send_iso+0xc7d/0xe10 Call Trace: hci_send_iso+0xc7d/0xe10 iso_sock_sendmsg+0x710/0x900 __sys_sendto+0x34a/0x3a0
由任务 86 分配: __alloc_skb+0xdd/0x820 alloc_skb_with_frags+0x7e/0x770 sock_alloc_send_pskb+0x67a/0x820 bt_skb_sendmsg.constprop.0+0xc0/0x6c0 iso_sock_sendmsg+0x44e/0x900
由任务 90 释放: kmem_cache_free+0xcb/0x3d0 vhci_read+0x33f/0x4d0 vfs_read+0x177/0xa20
像 hci_queue_acl() 所做的那样,在整个分片批次期间持有队列锁,以在保持分片顺序的同时对插入操作和出队操作进行序列化。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.