0.0
NA
CVE-2026-64573
Bluetooth: qca: fix NVM tag length underflow in TLV parser
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)

INFO

Published Date :

Aug. 5, 2026, 8:16 a.m.

Last Modified :

Aug. 5, 2026, 8:16 a.m.

Remotely Exploit :

No

Source :

416baaa9-dc9f-4396-8d5f-8c081fb06d67
Affected Products

The following products are affected by CVE-2026-64573 vulnerability. Even if cvefeed.io is aware of the exact versions of the products that are affected, the information is not represented in the table below.

No affected product recoded yet

Solution
Fix integer underflow in TLV parser to prevent buffer overflows.
  • Update the Linux kernel to include the fix.
  • Ensure the TLV parser handles tag lengths correctly.
  • Validate firmware buffer sizes before processing.
  • Rewrite loop bounds to prevent underflow.
CWE - Common Weakness Enumeration

While CVE identifies specific instances of vulnerabilities, CWE categorizes the common flaws or weaknesses that can lead to vulnerabilities. CVE-2026-64573 is associated with the following CWEs:

Common Attack Pattern Enumeration and Classification (CAPEC)

Common Attack Pattern Enumeration and Classification (CAPEC) stores attack patterns, which are descriptions of the common attributes and approaches employed by adversaries to exploit the CVE-2026-64573 weaknesses.

We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).

Results are limited to the first 15 repositories due to potential performance issues.

The following list is the news that have been mention CVE-2026-64573 vulnerability anywhere in the article.

The following table lists the changes that have been made to the CVE-2026-64573 vulnerability over time.

Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.

  • New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    Aug. 05, 2026

    Action Type Old Value New Value
    Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '427281f9498ed614f9aabc80e46ec077c487da6d', 'lessThan': '70354dbb5f72d9a76da7b031de3cbaf6c7d8fc24', 'versionType': 'git'}, {'status': 'affected', 'version': '2e4edfa1e2bd821a317e7d006517dcf2f3fac68d', 'lessThan': '59fd2f075bca94f030c7c78e94878ea0803d7690', 'versionType': 'git'}, {'status': 'affected', 'version': '2e4edfa1e2bd821a317e7d006517dcf2f3fac68d', 'lessThan': 'a087ed960fce54e9302796229e9d545bbc9bcd4a', 'versionType': 'git'}, {'status': 'affected', 'version': '2e4edfa1e2bd821a317e7d006517dcf2f3fac68d', 'lessThan': '4fcfb5b2c736785464ff9745f94c6726c5ee2d85', 'versionType': 'git'}, {'status': 'affected', 'version': '2e4edfa1e2bd821a317e7d006517dcf2f3fac68d', 'lessThan': 'c90164ca0f7036942ba088eb7ea8d3f6c2352020', 'versionType': 'git'}, {'status': 'affected', 'version': 'ed53949cc92e28aaa3463d246942bda1fbb7f307', 'versionType': 'git'}, {'status': 'affected', 'version': '1caceadfb50432dbf6d808796cb6c34ebb6d662c', 'versionType': 'git'}, {'status': 'affected', 'version': '02f05ed44b71152d5e11d29be28aed91c0489b4e', 'versionType': 'git'}, {'status': 'affected', 'version': '6.6.31', 'lessThan': '6.6.148', 'versionType': 'semver'}, {'status': 'affected', 'version': '5.15.159', 'lessThan': '5.16', 'versionType': 'semver'}, {'status': 'affected', 'version': '6.1.91', 'lessThan': '6.2', 'versionType': 'semver'}, {'status': 'affected', 'version': '6.8.10', 'lessThan': '6.9', 'versionType': 'semver'}], 'programFiles': ['drivers/bluetooth/btqca.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '6.9'}, {'status': 'unaffected', 'version': '0', 'lessThan': '6.9', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '6.6.148', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.101', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.42', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.6', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc4', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['drivers/bluetooth/btqca.c'], 'defaultStatus': 'affected'}]
    Added 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)
    Added Reference https://git.kernel.org/stable/c/4fcfb5b2c736785464ff9745f94c6726c5ee2d85
    Added Reference https://git.kernel.org/stable/c/59fd2f075bca94f030c7c78e94878ea0803d7690
    Added Reference https://git.kernel.org/stable/c/70354dbb5f72d9a76da7b031de3cbaf6c7d8fc24
    Added Reference https://git.kernel.org/stable/c/a087ed960fce54e9302796229e9d545bbc9bcd4a
    Added Reference https://git.kernel.org/stable/c/c90164ca0f7036942ba088eb7ea8d3f6c2352020
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.