PT-2026-61261 · Linux · Linux
CVE-2026-63944
·
Published
2026-07-19
·
Updated
2026-07-19
CVSS v3.1
8.8
High
| Vector | AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: hci sync: fix UAF in hci le create cis sync
hci le create cis sync() dereferences conn->conn timeout after releasing
both rcu read lock() and hci dev lock(hdev). The conn pointer was
obtained from an RCU-protected iteration over hdev->conn hash.list and
is not valid once these locks are dropped. A concurrent disconnect can
free the hci conn between the unlock and the dereference, causing a
use-after-free read.
The cancellation mechanism in hci conn del() cannot prevent this because
hci le create cis pending() queues hci create cis sync with data=NULL:
hci cmd sync queue(hdev, hci create cis sync, NULL, NULL);
While hci conn del() dequeues with data=conn:
hci cmd sync dequeue(hdev, NULL, conn, NULL);
Since NULL != conn, the lookup in hci cmd sync lookup entry() never
matches, and the pending work item is not cancelled.
Fix this by saving conn->conn timeout into a local variable while the
locks are still held, so the stale conn pointer is never dereferenced
after unlock.
This is the same class of bug as the one fixed by commit 035c25007c9e
("Bluetooth: hci sync: Fix UAF on le read features complete") which
addressed the identical pattern in a different function.
This vulnerability was identified using 0sec.ai, an open-source
automated security auditing platform (https://github.com/0sec-labs).
Fix
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Linux