All of lore.kernel.org
 help / color / mirror / Atom feed
* CVE-2026-98809: Bluetooth: hci_sync: don't drain cmd_sync backlog on unregister
@ 2026-10-18 15:46 Greg Kroah-Hartman
  0 siblings, 0 replies; only message in thread
From: Greg Kroah-Hartman @ 2026-10-18 15:46 UTC (permalink / raw)
  To: linux-cve-announce; +Cc: Greg Kroah-Hartman

From: Greg Kroah-Hartman <gregkh@kernel.org>

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

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

Bluetooth: hci_sync: don't drain cmd_sync backlog on unregister

hci_unregister_dev() disables cmd_work and cmd_timer, then calls
hci_cmd_sync_clear(), whose cancel_work_sync() waits for
hci_cmd_sync_work() to return. That worker dequeues and runs every
entry on cmd_sync_work_list. With cmd_work disabled nothing reaches
the controller, so each queued HCI command waits the full
HCI_CMD_TIMEOUT (2s).

The backlog has no bound. Userspace can keep queuing MGMT commands
such as MGMT_OP_GET_CLOCK_INFO against a controller that doesn't
answer. Closing /dev/vhci then blocks in vhci_release() for
backlog * 2s:

  INFO: task syz-executor:5749 blocked for more than 143 seconds.
   cancel_work_sync
   hci_cmd_sync_clear
   hci_unregister_dev
   vhci_release

In a local reproduction the backlog held more than 5000 entries,
which comes to hours of hang.

Stop the worker from taking new entries once HCI_UNREGISTER is set,
and wake any request still waiting with -ENODEV before cancelling
the work. The entries left over are destroyed with -ECANCELED by the
existing sweep in hci_cmd_sync_clear(). They stay on the list until
the work has stopped, so hci_cmd_sync_dequeue() and friends still see
them. A callback already running may still issue another command,
which delays unregister by at most one timeout per remaining command,
not by the whole backlog.

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


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

	Issue introduced in 5.17 with commit 008ee9eb8a11bcabf12c91771dd4f470b082bd44 and fixed in 6.12.113 with commit 143bde97c4101ae68eb656c87e620c45b07a3090
	Issue introduced in 5.17 with commit 008ee9eb8a11bcabf12c91771dd4f470b082bd44 and fixed in 6.18.56 with commit 7f16443a30f4e86d84ae4faf057d333b41ddb757
	Issue introduced in 5.17 with commit 008ee9eb8a11bcabf12c91771dd4f470b082bd44 and fixed in 7.2.10 with commit e8ba8c9c74d1035042cdf6cb5adf8f59b9b1271c
	Issue introduced in 5.17 with commit 008ee9eb8a11bcabf12c91771dd4f470b082bd44 and fixed in 7.3-rc6 with commit b1f24c1ab52345e810c42a1a81286cb5a7c92252

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-98809
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/hci_sync.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/143bde97c4101ae68eb656c87e620c45b07a3090
	https://git.kernel.org/stable/c/7f16443a30f4e86d84ae4faf057d333b41ddb757
	https://git.kernel.org/stable/c/e8ba8c9c74d1035042cdf6cb5adf8f59b9b1271c
	https://git.kernel.org/stable/c/b1f24c1ab52345e810c42a1a81286cb5a7c92252

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-10-18 16:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-18 15:46 CVE-2026-98809: Bluetooth: hci_sync: don't drain cmd_sync backlog on unregister Greg Kroah-Hartman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.