CVE-2025-68304

Source
https://cve.org/CVERecord?id=CVE-2025-68304
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-68304.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2025-68304
Downstream
Published
2025-12-16T15:06:21.887Z
Modified
2026-03-13T04:05:35.463057Z
Summary
Bluetooth: hci_core: lookup hci_conn on RX path on protocol side
Details

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: hcicore: lookup hciconn on RX path on protocol side

The hdev lock/lookup/unlock/use pattern in the packet RX path doesn't ensure hciconn* is not concurrently modified/deleted. This locking appears to be leftover from before connhash 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 hciconn* from elsewhere than the ordered hdev->workqueue where the RX work runs in. E.g. commit 5af1f84ed13a ("Bluetooth: hcisync: Fix UAF on hciabortconn_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 hciconn and associated socket-specific conn to protocol recv handlers, and do them within a single critical section to cover hciconn* 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)
Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/68xxx/CVE-2025-68304.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
5af1f84ed13a416297ab9ced7537f4d5ae7f329a
Fixed
ec74cdf77310c43b01b83ee898a9bd4b4b0b8e93
Fixed
79a2d4678ba90bdba577dc3af88cc900d6dcd5ee
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Last affected
cd55c13bbb3d093ae601aa97e588ed4c1390ebb1
Last affected
4d3ca4a9aaf0aa798a6be372dc0fc3a29e37dd57
Last affected
80265dd1d944c3f33e52375b5dbe654980bd2688

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-68304.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.6.0
Fixed
6.17.11

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-68304.json"