CVE-2025-68304
CVE.org · Published
- Record status
- Published
- Identifier year (not publication year)
- 2025
- Source publication
- Source updated
- Imported by cveboard
- Source snapshot
- cve_2026-10-24_midnight_baseline ·
CNA source text (English)
Bluetooth: hci_core: lookup hci_conn on RX path on protocol side
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: hci_core: lookup hci_conn on RX path on protocol side The hdev lock/lookup/unlock/use pattern in the packet RX path doesn't ensure hci_conn* is not concurrently modified/deleted. This locking appears to be leftover from before conn_hash started using RCU commit bf4c63252490b ("Bluetooth: convert conn hash to RCU") and not clear if it had purpose since then. Currently, there are code paths that delete hci_conn* from elsewhere than the ordered hdev->workqueue where the RX work runs in. E.g. commit 5af1f84ed13a ("Bluetooth: hci_sync: Fix UAF on hci_abort_conn_sync") introduced some of these, and there probably were a few others before it. It's better to do the locking so that even if these run concurrently no UAF is possible. Move the lookup of hci_conn and associated socket-specific conn to protocol recv handlers, and do them within a single critical section to cover hci_conn* usage and lookup. syzkaller has reported a crash that appears to be this issue: [Task hdev->workqueue] [Task 2] hci_disconnect_all_sync l2cap_recv_acldata(hcon) hci_conn_get(hcon) hci_abort_conn_sync(hcon) hci_dev_lock hci_dev_lock hci_conn_del(hcon) v-------------------------------- hci_dev_unlock hci_conn_put(hcon) conn = hcon->l2cap_data (UAF)
Scoped product and version facts
Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.
Exploitation unknown; this catalogue does not assess exploitation.
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
unaffected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 5af1f84ed13a416297ab9ced7537f4d5ae7f329a | affected | git | ec74cdf77310c43b01b83ee898a9bd4b4b0b8e93 | Unavailable | None listed |
| 5af1f84ed13a416297ab9ced7537f4d5ae7f329a | affected | git | 79a2d4678ba90bdba577dc3af88cc900d6dcd5ee | Unavailable | None listed |
| cd55c13bbb3d093ae601aa97e588ed4c1390ebb1 | affected | git | Unavailable | Unavailable | None listed |
| 4d3ca4a9aaf0aa798a6be372dc0fc3a29e37dd57 | affected | git | Unavailable | Unavailable | None listed |
| 80265dd1d944c3f33e52375b5dbe654980bd2688 | affected | git | Unavailable | Unavailable | None listed |
| 6.1.149 | affected | semver | 6.2 | Unavailable | None listed |
| 6.4.16 | affected | semver | 6.5 | Unavailable | None listed |
| 6.5.3 | affected | semver | 6.6 | Unavailable | None listed |
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
affected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 6.6 | affected | Unavailable | Unavailable | Unavailable | None listed |
| 0 | unaffected | semver | 6.6 | Unavailable | None listed |
| 6.17.11 | unaffected | semver | Unavailable | 6.17.* | None listed |
| 6.18 | unaffected | original_commit_for_fix | Unavailable | * | None listed |