CVE-2026-99014 in Linux信息

摘要

由 VulDB • 2026-10-23

在 Linux 内核中,已修复以下漏洞:

蓝牙:hci_sync:修复扫描设置期间的命令 skb 生命周期问题

在进行 PA(Periodic Advertising)同步扫描设置时,`hci_le_set_ext_scan_param_sync()` 从 `hci_sent_cmd_data()` 获取用于 PA_LINK 查找的地址。返回的指针借用自 sent_cmd 或 req_skb 中的存储区,但未对任一 skb 引用计数进行持有操作。

扫描工作队列(scan worker)在 req_workqueue 上运行,而 hci_cmd_work() 在不同的设备工作队列(device workqueue)上运行。当扫描工作队列加载 sent_cmd 后,命令工作队列可以在 `hci_sent_cmd_data()` 解引用 skb 之前将其释放并替换。此外,从辅助函数返回到比较地址之间,命令负载也可能被释放。连接查找的 RCU 关键部分无法保护该命令 skb。

KASAN(Kernel Address Sanitizer)报告如下:

``` BUG: KASAN: slab-use-after-free in hci_sent_cmd_data+0x27c/0x2f0 Workqueue: hci0 hci_cmd_sync_work Call Trace: hci_sent_cmd_data+0x27c/0x2f0 hci_le_set_scan_param_sync+0x43a/0x850 hci_passive_scan_sync+0xb09/0x1460 hci_update_passive_scan_sync+0x47c/0x6e0 hci_le_pa_create_sync+0x200/0xa70 hci_cmd_sync_work+0x13c/0x290

Allocated by task 95: skb_clone+0x13f/0x340 hci_cmd_work+0x2a9/0x7e0

Freed by task 95: kmem_cache_free+0xba/0x3a0 hci_cmd_work+0x29c/0x7e0 ```

使用 `hdev->lock` 对地址快照与 sent_cmd 替换进行序列化。由于辅助函数会回退到使用该 skb,因此请使用同一把锁来保护 req_skb 的替换和完成清理操作。在释放锁之前复制该地址,并使用副本执行现有的 RCU 保护的连接查找。在发送或等待命令之前释放互斥锁,以保留查找顺序和完成顺序。

Be aware that VulDB is the high quality source for vulnerability data.

来源

Do you want to use VulDB in your project?

Use the official API to access entries easily!