Cloudanix VulnDB

CVE-2026-80764

None

CVSS

—

EPSS

0.2%

Published

Sep 4, 2026

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A locking mistake in the Linux kernel's Bluetooth code could let a local user crash the system by reading certain internal status files at the exact moment a reset occurs.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Privilege Gain
Component
OS kernel
Class
Use After Free
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

Use-after-free in Bluetooth LE accept/resolving list handling: hci_cc_reset clears lists without hdev->lock, allowing a concurrent debugfs reader (white_list_show) to dereference a freed hci_bdaddr_list entry after list_del and kfree.

Why it matters to the business

Kernel memory corruption or crash possible on Linux systems exposing Bluetooth debugfs interfaces during reset events, potentially causing denial of service for Bluetooth-dependent workloads; low exploit maturity and no observed in-the-wild use reduces immediate urgency.

How an attack unfolds

An attacker with local access triggers a Bluetooth HCI reset while simultaneously performing a debugfs read on the accept list; the missing lock permits the reset path to free the list entry between the reader's lock acquisition and field access, leading to a slab-use-after-free dereference.

How to fix it

Apply the upstream fix that acquires hdev->lock around both LE accept and resolving list clears inside hci_cc_reset; rebuild and deploy the patched kernel across all affected Linux distributions.

How to confirm the fix worked

Confirm the patch is present by inspecting hci_cc_reset for lock acquisition around list clears; run KASAN-enabled kernels with concurrent reset and debugfs read workloads to verify absence of use-after-free reports.

Typical attack path

  1. Obtain local unprivileged access on a Linux host with Bluetooth debugfs enabled
  2. Trigger or wait for an HCI reset command completion that calls hci_cc_reset
  3. Concurrently open and read /sys/kernel/debug/bluetooth/hci*/white_list or equivalent debugfs entry
  4. Cause the reader to dereference the now-freed list entry and follow its stale next pointer
  5. Observe KASAN report or kernel oops resulting from the UAF

How to detect it

Search kernel logs and KASAN output for slab-use-after-free involving white_list_show, seq_read_iter, or hci_bdaddr_list_clear; inspect audit logs for concurrent debugfs reads on Bluetooth hci entries during reset command completions.

  • BUG: KASAN: slab-use-after-free in white_list_show
  • white_list_show+0x15f/0x180
  • hci_bdaddr_list_clear
  • hci_cc_reset
  • Read of size 1 at addr .* by task .*poc

What your security team should do

  • Prioritize kernel updates containing the hci_event locking fix within standard patch cycles given low EPSS and no KEV listing
  • Restrict debugfs access via mount options or SELinux policies on systems where Bluetooth debugging is unnecessary
  • Monitor for kernel oops or KASAN reports involving white_list_show or hci_bdaddr_list_clear
  • Test Bluetooth reset paths in staging environments before broad deployment

The record

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: hci_event: fix LE list UAF on reset hci_cc_reset() clears the LE accept and resolving lists without taking hdev->lock. Other command-complete handlers serialize updates to these lists with that lock, and the debugfs readers hold it while walking them. This permits the reset completion and a debugfs read to interleave as follows: hci_rx_work debugfs reader ----------- -------------- lock hdev->lock fetch current entry list_del(entry) kfree(entry) read entry fields The reader then dereferences a freed list entry and may follow its stale next pointer. KASAN reported: BUG: KASAN: slab-use-after-free in white_list_show+0x15f/0x180 Read of size 1 at addr ffff8881015dab16 by task poc/95 Call Trace: white_list_show+0x15f/0x180 seq_read_iter+0x3ff/0x1190 seq_read+0x267/0x3d0 vfs_read+0x177/0xa20 ksys_read+0xf7/0x1c0 Allocated by task 91: hci_bdaddr_list_add+0x1a6/0x3a0 hci_cc_le_add_to_accept_list+0xab/0x140 hci_cmd_complete_evt+0x26c/0x9a0 hci_event_packet+0x454/0xb20 hci_rx_work+0x293/0x730 Freed by task 90: kfree+0x131/0x3c0 hci_bdaddr_list_clear+0xd8/0x160 hci_cc_reset+0x28a/0x370 hci_cmd_complete_evt+0x26c/0x9a0 hci_event_packet+0x454/0xb20 hci_rx_work+0x293/0x730 Take hdev->lock around both list clears. This matches the existing mutation and traversal locking convention.

Affected packages

Ecosystem Package Introduced Fixed