CVE-2026-74510: Bluetooth: mgmt: fix UAF in pair command cancellation

Greg Kroah-Hartman <[email protected]>
Newsgroups org.kernel.vger.linux-cve-announce
Message-ID <2026081542-CVE-2026-74510-f610@gregkh>
From: Greg Kroah-Hartman <[email protected]>

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

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

Bluetooth: mgmt: fix UAF in pair command cancellation

The pairing completion and authentication failure callbacks look up the
pending MGMT_OP_PAIR_DEVICE command by walking hdev->mgmt_pending. The
lookup returned a command that was still linked on the shared pending list,
without keeping mgmt_pending_lock held for the later dereference and
removal.

A concurrent MGMT_OP_CANCEL_PAIR_DEVICE request can remove and free the
same pending command before the callback uses it. The reverse race is also
possible when cancel_pair_device() gets a command from pending_find() and a
callback removes it before the cancel path dereferences it. This can lead
to a use-after-free and a second list_del().

Make the pairing lookup helpers transfer ownership of the pending command
by removing it from hdev->mgmt_pending while holding mgmt_pending_lock.
The callbacks and cancel path then complete the command and free it
directly, so racing paths cannot find or free the same command again. Take
a temporary hci_conn reference in cancel_pair_device() because the command
completion drops the reference stored in the pending command.

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


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

	Issue introduced in 2.6.39 with commit e9a416b5ce0c0f93819f55d34cf6882196e9c3b2 and fixed in 6.6.151 with commit 86ed4dd6548ccf277bc691bc912ca06e76b9d80c
	Issue introduced in 2.6.39 with commit e9a416b5ce0c0f93819f55d34cf6882196e9c3b2 and fixed in 6.12.103 with commit 7c2a152a897cd1c184b2051484d4f74d803e7f4a
	Issue introduced in 2.6.39 with commit e9a416b5ce0c0f93819f55d34cf6882196e9c3b2 and fixed in 6.18.44 with commit c569def320aa8b1fde89227e2ea96606790fd86d
	Issue introduced in 2.6.39 with commit e9a416b5ce0c0f93819f55d34cf6882196e9c3b2 and fixed in 7.1.8 with commit 51be7280980fddc90ebe874a69c2fe8ab02bb46a
	Issue introduced in 2.6.39 with commit e9a416b5ce0c0f93819f55d34cf6882196e9c3b2 and fixed in 7.2-rc6 with commit d0a7b48ad0921bd88effaee10bf970ab1d5d0ddd

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-74510
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/mgmt.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/86ed4dd6548ccf277bc691bc912ca06e76b9d80c
	https://git.kernel.org/stable/c/7c2a152a897cd1c184b2051484d4f74d803e7f4a
	https://git.kernel.org/stable/c/c569def320aa8b1fde89227e2ea96606790fd86d
	https://git.kernel.org/stable/c/51be7280980fddc90ebe874a69c2fe8ab02bb46a
	https://git.kernel.org/stable/c/d0a7b48ad0921bd88effaee10bf970ab1d5d0ddd
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.