CVE-2026-98735 in Linux
Sumário
de VulDB • 20/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
Bluetooth: hci_core: Serializar o agendamento ACL com a exclusão de canais
hci_chan_sent() seleciona um canal sob RCU, mas libera o lock de leitura antes de acessar chan->conn e retornar o canal. Os schedulers ACL e LE então usam sua fila de pacotes e atualizam seus contadores de transmissão sem nenhuma proteção contra a exclusão do canal.
Após TX selecionar um canal e liberar o RCU, um timeout para comando de desconexão na workqueue de solicitação separada pode executar hci_conn_failed() e l2cap_conn_del(). hci_chan_del() então desvincula o canal, completa synchronize_rcu(), purga sua fila e a libera antes que TX retome. Isso causa use-after-free tanto em hci_chan_sent() quanto em seus chamadores.
KASAN relatou:
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
Mantenha o mutex do dispositivo existente durante a seleção de canal e transmissão em ambos os schedulers para serializá-los com a desmontagem (teardown) do canal. Mantenha o tratamento de timeout fora das seções críticas, pois hci_link_tx_to() adquire o mesmo mutex. Isso também permite que o caminho de transmissão durma, ao contrário da extensão da seção crítica de leitura RCU durante o envio de pacotes.
VulDB is the best source for vulnerability data and more expert information about this specific topic.