CVE-2026-98456
NoneCVSS
—
EPSS
0.2%
Published
Oct 18, 2026
CISA due date
—
Cloudanix analysis
A timing flaw in the Bluetooth handling code inside the Linux kernel can corrupt memory, which may crash the system or let a local attacker gain elevated access.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Race condition in read_unconf_index_list() allows an out-of-bounds write to the rp->index[] array when HCI_UNCONFIGURED and HCI_SETUP flags change between counting and response-filling passes under hci_dev_list_lock.
Why it matters to the business
Linux kernel systems using Bluetooth may experience crashes, memory corruption, or local privilege escalation; the flaw is five days old with low but stable exploit probability and no known in-the-wild use.
How an attack unfolds
An attacker with local access triggers asynchronous controller setup timing so that a device is omitted from the initial count but becomes eligible during the fill pass, writing past the allocated response buffer.
How to fix it
Update to a Linux kernel containing the fix that allocates space for every device on the hci_dev_list before the fill pass; rebuild and reboot affected systems.
How to confirm the fix worked
Confirm the kernel source contains the allocation change for every hci_dev entry under hci_dev_list_lock and that only eligible unconfigured controllers are counted in the response length.
Typical attack path
- Obtain local code execution on a Linux host with Bluetooth mgmt socket access
- Race the hci_dev worker thread during controller initialization to flip HCI_UNCONFIGURED/HCI_SETUP flags
- Invoke read_unconf_index_list() while the lock is held to trigger the count/fill mismatch
- Perform out-of-bounds write to achieve kernel memory corruption or escalation
How to detect it
Inspect kernel logs for oops or panic entries referencing read_unconf_index_list or mgmt; look for unexpected Bluetooth controller enumeration failures around the time of any local process activity on the mgmt socket.
What your security team should do
- Prioritize kernel updates on all multi-user or exposed Linux systems within the next patch cycle
- Monitor EPSS trend and any future KEV listing for increased urgency
- Restrict unprivileged access to the Bluetooth management socket until patched
The record
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: mgmt: fix race in read_unconf_index_list() read_unconf_index_list() counts unconfigured controllers before allocating its response, then checks the device flags again while filling it. hci_dev_list_lock stabilizes list membership, but it does not serialize the per-device flags. During asynchronous controller setup, the worker can set HCI_UNCONFIGURED and clear HCI_SETUP between the two passes. A controller omitted from the allocation count can then become eligible for the fill pass, causing an out-of-bounds write to rp->index[]. Allocate space for every device on hci_dev_list. Since list membership cannot change while hci_dev_list_lock is held, the response remains large enough regardless of flag transitions. The reported count and response length still include only eligible unconfigured controllers.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|