CVE-2026-98735 in Linux
Сводка
по VulDB • 19.10.2026
В ядре Linux была устранена следующая уязвимость:
Bluetooth: hci_core — сериализация планирования ACL при удалении канала
Функция `hci_chan_sent()` выбирает канал под защитой RCU, но снимает блокировку чтения перед обращением к `chan->conn` и возвратом указателя на канал. Планировщики ACL и LE затем используют его очередь пакетов и обновляют счетчики передачи без какой-либо защиты от удаления канала.
После того как TX выбирает канал и освобождает RCU, таймаут команды разрыва соединения в отдельном рабочем потоке (workqueue) может запустить `hci_conn_failed()` и `l2cap_conn_del()`. Функция `hci_chan_del()` затем отвязывает канал, завершает операцию `synchronize_rcu()`, очищает его очередь и освобождает память до того, как TX возобновит работу. Это приводит к уязвимости use-after-free (использование после освобождения) как в функции `hci_chan_sent()`, так и в ее вызывающих функциях.
KASAN сообщил:
BUG: KASAN: slab-use-after-free in hci_chan_sent+0x892/0x9b0 Workqueue: hci0 hci_tx_work Call Trace: hci_chan_sent+0x892/0x9b0 hci_tx_work+0x5e6/0xb70 Allocated by task 91: hci_chan_create+0xe3/0x350 l2cap_conn_add.part.0+0x12/0xa30 l2cap_chan_connect+0x110d/0x1b60 l2cap_sock_connect+0x310/0x530 Freed by task 99: hci_chan_del+0x11f/0x170 l2cap_conn_del+0x4f1/0x800 l2cap_connect_cfm+0x88c/0xd30 hci_conn_failed+0x150/0x250 hci_abort_conn_sync+0x3e3/0x800 hci_cmd_sync_run+0x7e/0xc0 hci_abort_conn+0x105/0x1f0 disconnect_sync+0x157/0x290 hci_cmd_sync_work+0x13c/0x290
Удерживайте существующий мьютекс устройства в течение выбора канала и передачи данных как для планировщика ACL, так и для LE, чтобы сериализовать их с процессом teardown (разбора) канала. Обработку таймаутов следует вынести за пределы критических секций, поскольку `hci_link_tx_to()` захватывает тот же мьютекс. Это также позволяет пути передачи данных переходить в состояние сна, что невозможно при расширении критической секции чтения RCU на момент отправки пакета.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.