CVE-2026-68389
High · 8.8CVSS
8.8
EPSS
0.3%
Published
Aug 10, 2026
CISA due date
—
Cloudanix analysis
A flaw in how some Linux systems handle Bluetooth memory diagnostics can let a nearby attacker crash the system or run code by sending bad diagnostic data.
- Exploitation
- Adjacent Network
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Full Compromise
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Use-after-free in hci_qca memdump handling: zero dump size frees qca_memdump without clearing the pointer or disabling collection/IBS state, allowing subsequent work items to dereference the freed object.
Why it matters to the business
Bluetooth-enabled Linux systems may experience kernel crashes, memory corruption, or local privilege escalation when a malicious or faulty Bluetooth controller sends an invalid memdump packet, disrupting wireless connectivity and potentially compromising the host.
How an attack unfolds
An attacker with the ability to send crafted HCI packets (via a compromised or rogue Bluetooth controller) triggers qca_controller_memdump with a zero-size report; the error path leaves stale pointers and flags, so a later scheduled memdump work item operates on freed memory, enabling use-after-free exploitation.
How to fix it
Update the Linux kernel to a version containing the fix that clears the saved pointer and memdump state before returning from the invalid-size path; rebuild and reboot systems using the hci_qca driver.
How to confirm the fix worked
Inspect kernel source for the corrected error path in drivers/bluetooth/hci_qca.c that matches the cleanup used on hci_devcd_init failure; confirm the patch is present via git log or package changelog and verify no dangling pointer remains on zero-size return.
Typical attack path
- Attacker gains ability to inject HCI traffic or control a Bluetooth controller
- Controller emits memdump sequence-zero packet advertising zero dump size
- qca_controller_memdump frees the memdump object without clearing qca->qca_memdump or collection state
- Subsequent memdump work item reads the dangling pointer and performs operations on freed memory
- Attacker leverages the resulting use-after-free for memory corruption or code execution
How to detect it
Search kernel logs for hci_qca memdump error paths mentioning zero dump size or invalid memdump; look for Bluetooth stack crashes or use-after-free reports in dmesg around the time of suspicious HCI traffic.
What your security team should do
- Prioritize kernel updates on all systems exposing Bluetooth via the qca driver
- Disable Bluetooth where not required until patched
- Monitor vendor advisories for backported fixes in supported distributions
The record
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: hci_qca: Clear memdump state on invalid dump size qca_controller_memdump() allocates qca->qca_memdump before processing the first dump packet. For a sequence-zero packet it then disables IBS, marks memdump collection active, and reads the advertised dump size. If the controller reports a zero dump size, the error path frees the local qca_memdump object and returns without clearing qca->qca_memdump or undoing the collection state. A later memdump work item initializes its local pointer from qca->qca_memdump and skips allocation when that pointer is non-NULL, so it can operate on freed memory. The stale collection and IBS-disabled flags can also leave waiters or later transmit handling blocked behind an aborted dump. Clear the saved pointer and memdump state before returning from the invalid-size path, matching the cleanup used when hci_devcd_init() fails. A static analysis checker reported the stale memdump state, and manual source review confirmed the invalid-size failure path.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|