CVE-2026-64404: Bluetooth: ISO: avoid NULL deref of conn in iso_conn_big_sync()

Greg Kroah-Hartman <[email protected]> Sat, 25 Jul 2026 10:50:21 +0200
Newsgroups org.kernel.vger.linux-cve-announce
Message-ID <2026072530-CVE-2026-64404-777e@gregkh>
From: Greg Kroah-Hartman <[email protected]>

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

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

Bluetooth: ISO: avoid NULL deref of conn in iso_conn_big_sync()

iso_conn_big_sync() drops the socket lock to call hci_get_route() and
then re-acquires it, but dereferences iso_pi(sk)->conn->hcon afterwards
without re-checking that conn is still valid.

While the lock is dropped, the connection can be torn down under the
same socket lock: iso_disconn_cfm() -> iso_conn_del() -> iso_chan_del()
sets iso_pi(sk)->conn to NULL (and the broadcast teardown path can also
clear conn->hcon on its own). When iso_conn_big_sync() re-acquires the
lock and reads conn->hcon, conn may be NULL, causing a NULL pointer
dereference (hcon is the first member of struct iso_conn).

This path is reached from iso_sock_recvmsg() for a PA-sync broadcast
sink socket (BT_SK_DEFER_SETUP | BT_SK_PA_SYNC), so the dropped-lock
window can race with connection teardown driven by controller events.

Re-validate iso_pi(sk)->conn and its hcon after re-acquiring the socket
lock and bail out if the connection went away, as already done in the
sibling iso_sock_rebind_bc().

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


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

	Issue introduced in 6.12.6 with commit cbe640d6cae590b9a7d81ce86fe9a90e83eec1d5 and fixed in 6.12.96 with commit b3e647a4aa4d2d054f86a783f5c426035e1dc237
	Issue introduced in 6.13 with commit 7a17308c17880d259105f6e591eb1bc77b9612f0 and fixed in 6.18.39 with commit b84eeb7636d6962dd882d5e0b31475e4f404313c
	Issue introduced in 6.13 with commit 7a17308c17880d259105f6e591eb1bc77b9612f0 and fixed in 7.1.4 with commit 01afd198c2c286cd3b81f44d4e33a2e638711550
	Issue introduced in 6.13 with commit 7a17308c17880d259105f6e591eb1bc77b9612f0 and fixed in 7.2-rc3 with commit d5541eb148da72d5e0a1bca8ecd171f9fc8b366f

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-64404
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/iso.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/b3e647a4aa4d2d054f86a783f5c426035e1dc237
	https://git.kernel.org/stable/c/b84eeb7636d6962dd882d5e0b31475e4f404313c
	https://git.kernel.org/stable/c/01afd198c2c286cd3b81f44d4e33a2e638711550
	https://git.kernel.org/stable/c/d5541eb148da72d5e0a1bca8ecd171f9fc8b366f