Description
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: hci_conn: fix the SCO setup context lifetime hci_setup_sync() queues a conn_handle_t with a NULL destroy callback, so the context is only freed if hci_enhanced_setup_sync() actually runs. An entry that is cancelled instead is leaked, as _hci_cmd_sync_cancel_entry() does not release entry->data when there is no destroy callback, and hci_cmd_sync_clear() cancels every pending entry when the controller is unregistered. The context also stores a bare hci_conn pointer, so the connection can be freed while the work is queued. The dequeue in hci_conn_del() does not cover it either, as it matches on entry->data == conn and entry->data is the wrapper here. Same problem as commit 2f5d635ad590 ("Bluetooth: hci_sync: hold conn in hci_connect_acl/le_sync() callbacks"). Hold the connection and release both from a destroy callback. The submission failure path drops both, since hci_cmd_sync_submit() does not call the destroy callback when it fails to queue.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
e07a06b4eb417f5271d33ce2240e93c62d98b7b4 to < 37cfec41365c826d5496ef5d00c9e215eee53aa2affectede07a06b4eb417f5271d33ce2240e93c62d98b7b4 to < 9a2ba69cebe3fc5a3d4fa8eaaad3c42862723c27affectede07a06b4eb417f5271d33ce2240e93c62d98b7b4 to < a661de0ee29d0915c5e924edf91d2be2b4d35baeaffectede07a06b4eb417f5271d33ce2240e93c62d98b7b4 to < c1fe3c74a89a7749cba3caa0dd91236049c66116affectede07a06b4eb417f5271d33ce2240e93c62d98b7b4 to < 4d7b1c834d2775b73c65e4888e01f5af8b477fe9affectede07a06b4eb417f5271d33ce2240e93c62d98b7b4 to < 42de40abe25db9211107af8896d0fd741f10648daffected
Linux Linux
Default version status: affected
6.1affected0 to < 6.1unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.110 to ≤ 6.12.*unaffected6.18.52 to ≤ 6.18.*unaffected7.2.6 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/37cfec41365c826d5496ef5d00c9e215eee53aa2 ↗
- https://git.kernel.org/stable/c/9a2ba69cebe3fc5a3d4fa8eaaad3c42862723c27 ↗
- https://git.kernel.org/stable/c/a661de0ee29d0915c5e924edf91d2be2b4d35bae ↗
- https://git.kernel.org/stable/c/c1fe3c74a89a7749cba3caa0dd91236049c66116 ↗
- https://git.kernel.org/stable/c/4d7b1c834d2775b73c65e4888e01f5af8b477fe9 ↗
- https://git.kernel.org/stable/c/42de40abe25db9211107af8896d0fd741f10648d ↗