CVE-2026-64573

Bluetooth: qca: fix NVM tag length underflow in TLV parser

N/A
Published: August 5, 2026 at 08:08 AM UTC
Updated: August 19, 2026 at 05:20 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
N/A
Exploit prediction
EPSS 0.2%

Description

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: qca: fix NVM tag length underflow in TLV parser In the TLV_TYPE_NVM branch of qca_tlv_check_data() the tag loop bound is "while (idx < length - sizeof(struct tlv_type_nvm))". "length" is a signed int from the firmware TLV header and sizeof(struct tlv_type_nvm) is a size_t (12), so "length" is converted to size_t and any firmware-supplied "length" < 12 makes the subtraction wrap to a huge value. The loop body then reads a 12-byte struct tlv_type_nvm past the end of the short vmalloc'd firmware buffer (and the EDL_TAG_ID_* handlers can write past it). Rewrite the bound as "idx + sizeof(struct tlv_type_nvm) <= length"; both operands are non-negative, so it no longer underflows and a "length" too small for one record correctly skips the loop. BUG: KASAN: vmalloc-out-of-bounds in qca_download_firmware.isra.0 (drivers/bluetooth/btqca.c:421) Read of size 2 at addr ffffc900000e5004 by task kworker/u9:0/52 Workqueue: hci0 hci_power_on Call Trace: ... kasan_report (mm/kasan/report.c:595) qca_download_firmware.isra.0 (drivers/bluetooth/btqca.c:421 drivers/bluetooth/btqca.c:617) qca_uart_setup (drivers/bluetooth/btqca.c:948) qca_setup (drivers/bluetooth/hci_qca.c:2029) hci_uart_setup (drivers/bluetooth/hci_ldisc.c:438) hci_dev_open_sync (net/bluetooth/hci_sync.c:5227) hci_power_on (net/bluetooth/hci_core.c:920) process_one_work (kernel/workqueue.c:3322) worker_thread (kernel/workqueue.c:3486) kthread (kernel/kthread.c:436) ret_from_fork (arch/x86/kernel/process.c:158) ret_from_fork_asm (arch/x86/entry/entry_64.S:245)

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

v ≥ 6.8.105.15.159 ≤ v < 5.15.2166.1.91 ≤ v < 6.1.1836.6.31 ≤ v < 6.6.1486.8.10 ≤ v < 6.96.9 ≤ v < 6.12.1016.9 ≤ v < 6.18.426.9 ≤ v < 7.1.66.9 ≤ v < 7.21caceadfb50432dbf6d808796cb6c34ebb6d662c2e4edfa1e2bd821a317e7d006517dcf2f3fac68d2f5ed44b71152d5e11d29be28aed91c489b4e427281f9498ed614f9aabc80e46ec077c487da6d5.15.1596.1.916.6.316.8.106.9ed53949cc92e28aaa3463d246942bda1fbb7f307
Vendor states this is fixed in 4fcfb5b2c736785464ff9745f94c6726c5ee2d85 (fixed)
Vendor states this is fixed in 59fd2f075bca94f030c7c78e94878ea0803d7690 (fixed)
Vendor states this is fixed in 5d34e537755d2f9eba2d4e54d70126f987ef20b4 (fixed)
Vendor states this is fixed in 70354dbb5f72d9a76da7b031de3cbaf6c7d8fc24 (fixed)
Vendor states this is fixed in a087ed960fce54e9302796229e9d545bbc9bcd4a (fixed)
Vendor states this is fixed in a7ee11441d71ab036a705d110a415421f5a4a898 (fixed)
Vendor states this is fixed in c90164ca0f7036942ba088eb7ea8d3f6c2352020 (fixed)
Vendor states this is fixed in 5.15.216 (unaffected)
Vendor states this is fixed in 6.1.183 (unaffected)
Vendor states this is fixed in 6.12.101 (unaffected)
Vendor states this is fixed in 6.18.42 (unaffected)
Vendor states this is fixed in 6.6.148 (unaffected)
Vendor states this is fixed in 6.9 (unaffected)
Vendor states this is fixed in 7.1.6 (unaffected)
Vendor states this is fixed in 7.2 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

Quick Info

StatusRECEIVED

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card