CVE-2026-64406: Bluetooth: fix UAF in bt_accept_dequeue()

Greg Kroah-Hartman <[email protected]> Sat, 25 Jul 2026 10:50:23 +0200
Newsgroups org.kernel.vger.linux-cve-announce
Message-ID <2026072531-CVE-2026-64406-daf2@gregkh>
From: Greg Kroah-Hartman <[email protected]>

Description
===========

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

Bluetooth: fix UAF in bt_accept_dequeue()

bt_accept_get() takes a temporary reference before dropping the accept
queue lock. bt_accept_dequeue() currently drops that reference before
bt_accept_unlink(), leaving only the queue reference.

bt_accept_unlink() drops the queue reference. The subsequent
sock_hold() therefore accesses freed memory if it was the final
reference, as observed by KASAN during listening L2CAP socket cleanup.

Retain the temporary queue-walk reference through unlink and hand it to
the caller on success. Drop it explicitly on the closed and
not-yet-connected paths.

The Linux kernel CVE team has assigned CVE-2026-64406 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 5.10.259 with commit 751de6ec671fe75ad9cf65a0638d2a06b6a5984d and fixed in 5.10.261 with commit c0577c55219be42b6ea2ea8db11e85bfab6f4e8d
	Issue introduced in 5.15.210 with commit 407217734835d21d4e0105ebf347860dc1806f88 and fixed in 5.15.212 with commit 96ad400d5132eb333f28f6f1e2d58f0728ca9547
	Issue introduced in 6.1.175 with commit 7eebd4c2c86f573af87ff165d08a83432eb0b919 and fixed in 6.1.178 with commit 0a98ff4e7b867f72fbb4e1237d81e9fa02ded0a0
	Issue introduced in 6.6.142 with commit 5d86d2f1b4d9a508c441d3e45277ae1a73cfed57 and fixed in 6.6.145 with commit c66a95e60b65d876a927123b0ed36bd6177d9ca6
	Issue introduced in 6.12.92 with commit 87c543e2f78d0871f271df92dab98901bbd5b6f5 and fixed in 6.12.96 with commit 6303ed4bbe0095f4cc195225479bf506e010d1db
	Issue introduced in 6.18.34 with commit added1213395071470a900cc845a042fb51882a6 and fixed in 6.18.39 with commit 26168db1ce5a9766cde021b18e590a101c056614
	Issue introduced in 7.1 with commit ab1513597c6cf17cd1ad2a21e3b045421b48e022 and fixed in 7.1.4 with commit 50c662bdcd51b03033a0abed6716bfd377ba1049
	Issue introduced in 7.1 with commit ab1513597c6cf17cd1ad2a21e3b045421b48e022 and fixed in 7.2-rc3 with commit 4bd0b274054f2679f28b70222b607bb0afc3ab9a
	Issue introduced in 7.0.11 with commit a5ca86a6097a8b030ca3226cd300b17ed330f966

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2026-64406
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	net/bluetooth/af_bluetooth.c
	net/bluetooth/l2cap_sock.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/c0577c55219be42b6ea2ea8db11e85bfab6f4e8d
	https://git.kernel.org/stable/c/96ad400d5132eb333f28f6f1e2d58f0728ca9547
	https://git.kernel.org/stable/c/0a98ff4e7b867f72fbb4e1237d81e9fa02ded0a0
	https://git.kernel.org/stable/c/c66a95e60b65d876a927123b0ed36bd6177d9ca6
	https://git.kernel.org/stable/c/6303ed4bbe0095f4cc195225479bf506e010d1db
	https://git.kernel.org/stable/c/26168db1ce5a9766cde021b18e590a101c056614
	https://git.kernel.org/stable/c/50c662bdcd51b03033a0abed6716bfd377ba1049
	https://git.kernel.org/stable/c/4bd0b274054f2679f28b70222b607bb0afc3ab9a