data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-68189 in the interactive tracker

CVE-2026-68189

Bluetooth: hci_sync: Protect UUID list traversal

7.8 EPSS 0.2% AV:L

Published 2026-08-10 (2 months ago) by the Linux kernel CNA. Subsystem net/bluetooth. Debian urgency: not yet assigned.

What to do, per Debian release

Debian's own status for CVE-2026-68189 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source

ReleaseStatus VersionWhat this means
Debian 12bookwormfixedDLA-4777-1 · 2026-09-08 · text6.1.187-1Update the kernel and reboot. DLA-4777-1 shipped the fix on 2026-09-08, in 6.1.187-1. A running kernel keeps the old code until the machine restarts.
Debian 13trixiefixed6.12.101-1Update the kernel and reboot. Fixed in 6.12.101-1. A running kernel keeps the old code until the machine restarts.
Debian 14forkyfixed7.1.6-1Update the kernel and reboot. Fixed in 7.1.6-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.1.6-1Update the kernel and reboot. Fixed in 7.1.6-1. A running kernel keeps the old code until the machine restarts.
Debian 12bookworm · linux-6.12fixedDLA-4745-1 · 2026-08-18 · text6.12.101-1~deb12u1Update the kernel and reboot. DLA-4745-1 shipped the fix on 2026-08-18, in 6.12.101-1~deb12u1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

The hci_sync conversion moved class-of-device and EIR generation from an HCI request built under hdev->lock to asynchronous command sync work. The worker holds hdev->req_lock, but that lock does not serialize access to hdev->uuids against add_uuid() and remove_uuid(), which update the list under hdev->lock. The following interleaving can therefore occur: CPU0 (command sync work) CPU1 (management socket) fetch uuid from the list list_del(&uuid->list) kfree(uuid) read uuid->size KASAN reports the resulting use-after-free: BUG: KASAN: slab-use-after-free in eir_create+0xb8f/0xee0 Read of size 1 at addr ffff88810dbd8620 by task kworker/u17:0/87 Workqueue: hci0 hci_cmd_sync_work Call Trace: eir_create+0xb8f/0xee0 hci_update_eir_sync+0x1c0/0x330 hci_cmd_sync_work+0x13c/0x290 process_one_work+0x63a/0x1070 worker_thread+0x45b/0xd10 Allocated by task 86: __kasan_kmalloc+0x8f/0xa0 add_uuid+0x18a/0x4b0 hci_sock_sendmsg+0x1033/0x1ea0 Freed by task 92: __kasan_slab_free+0x43/0x70 kfree+0x131/0x3c0 remove_uuid+0x25e/0x560 hci_sock_sendmsg+0x1033/0x1ea0 Hold hdev->lock while generating and committing the class-of-device and EIR snapshots. Release it before sending an HCI command, so controller waits do not happen under the device lock. This protects all UUID list walks in these paths and restores the serialization lost in the command sync conversion.

Where it lives

The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.

net/bluetooth/hci_sync.c

What this is
BLUETOOTH SUBSYSTEMMAINTAINERS section matched on net/bluetooth/ · linux-bluetooth@vger.kernel.org · Supported
Kernel module
bluetooth

Check it on the machine

grep -w CONFIG_BT /boot/config-$(uname -r)

Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.

lsmod | grep -w bluetooth

Prints a line if that module is loaded right now, and nothing if it is not. One that is not loaded can still be loaded later by anything that needs it.

Show whether Debian builds this, per release

Debian builds this, but not on every flavour. At least one release below builds the code on some of its kernel flavours and not on others, so the answer depends on the architecture and flavour installed.

  • bookwormMnot built on amd64/cloud-amd64, arm64/cloud-arm64
  • trixie, forky, sidMnot built on amd64/cloud-amd64, arm64/cloud-arm64, s390x/s390x
  • bookworm · linux-6.12Mnot built on amd64/cloud-amd64, arm64/cloud-arm64
M
a module where it is built at all; some flavours do not build it
Build switch
CONFIG_BT

From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS kbuild Makefiles Debian linux-config packages

Signals

Published
2026-08-10 (2 months ago)source
CVSS
7.8 high
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:Hsource recompute it
Attack vector
local (AV:L)source
EPSS
0.16%, higher than 4.7% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
not yet assignedsource
Subsystem
net/bluetooth

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
5.176.1.18330bc6248f035
5.176.6.148e4fa2c5c261d
5.176.12.101a351f68fb248
5.176.18.42a42f5536ea9c
5.177.1.6fe13adc258df
5.177.2e9027ffbf5a0

Debian advisories

AdvisoryDateShipped toDebian
DLA-4777-12026-09-08bookworm 6.1.187-1tracker
DLA-4745-12026-08-18bookworm 6.12.101-1~deb12u1tracker

Why the CNA scored it this way

Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source

AV:LAttack vector, local
Exploitation requires concurrent MGMT_OP_ADD_UUID/MGMT_REMOVE_UUID commands through a local AF_BLUETOOTH HCI management socket (hci_sock_sendmsg), not reception of over-the-air Bluetooth protocol traffic from a remote peer.
AC:LAttack complexity, low
The attacker controls both sides of the race by issuing concurrent management socket commands from threads or processes they own; KASAN shows reliable interleaving between hci_cmd_sync_work and remove_uuid without attacker-uncontrollable timing or memory layout.
PR:LPrivileges required, low
MGMT_OP_ADD_UUID and MGMT_OP_REMOVE_UUID require HCI_SOCK_TRUSTED, set only when the socket binder holds CAP_NET_ADMIN; per kernel CNA guidance CAP_NET_ADMIN reachable via user namespaces (unshare -Urn) maps to PR:L, not PR:H.
UI:NUser interaction, none
No victim interaction is required; the attacker directly issues local management commands that queue hci_cmd_sync_work and concurrently modify the UUID list to trigger the use-after-free.
S:UScope, unchanged
The vulnerability causes kernel heap corruption and local privilege escalation within the same host security authority; it does not cross VM, container, or IOMMU security boundaries.
C:HConfidentiality impact, high
KASAN-confirmed slab use-after-free reading freed bt_uuid fields (uuid->size and uuid data) during eir_create traversal enables arbitrary kernel memory disclosure via heap spraying and reuse of freed kmalloc objects.
I:HIntegrity impact, high
Slab UAF on bt_uuid during list traversal enables attacker-controlled reallocation of freed objects, providing heap corruption primitives that can be leveraged for arbitrary kernel writes and control-flow hijacking.
A:HAvailability impact, high
The confirmed use-after-free in eir_create on the hci_cmd_sync_work path causes kernel oops or panic; repeated concurrent add/remove UUID operations can reliably crash or hang the system.