CVE-2026-64549: Bluetooth: bpa10x: avoid OOB read of revision string in bpa10x_setup()
Greg Kroah-Hartman <[email protected]> Mon, 27 Jul 2026 22:10:47 +0200
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026072737-CVE-2026-64549-20a7@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: Bluetooth: bpa10x: avoid OOB read of revision string in bpa10x_setup() bpa10x_setup() sends the vendor command 0xfc0e and passes the response to bt_dev_info() and hci_set_fw_info() as a "%s" string starting at skb->data + 1, without checking the length: bt_dev_info(hdev, "%s", (char *)(skb->data + 1)); hci_set_fw_info(hdev, "%s", skb->data + 1); A device that returns a one-byte response (status only) leaves skb->data + 1 past the end of the data, and the %s walk reads adjacent slab memory until it meets a NUL. The same happens when the payload is not NUL-terminated within skb->len. The out-of-bounds bytes end up in the kernel log and the firmware-info debugfs file. Print the revision string with a bounded "%.*s" limited to skb->len - 1 instead. This keeps the string readable for well-behaved devices while never reading past the received data, and does not fail setup, so a device returning a short or unterminated response keeps working. The Linux kernel CVE team has assigned CVE-2026-64549 to this issue. Affected and fixed versions =========================== Issue introduced in 4.4 with commit ddd68ec8f4847b460c9f580076eafe13b031a6fd and fixed in 5.10.261 with commit 1813add71e386f77b3040e6c8dc9b7b3ff965a6c Issue introduced in 4.4 with commit ddd68ec8f4847b460c9f580076eafe13b031a6fd and fixed in 5.15.212 with commit bd56c23f1f8681a2857ee924a8bd3abf87c8913b Issue introduced in 4.4 with commit ddd68ec8f4847b460c9f580076eafe13b031a6fd and fixed in 6.1.178 with commit 7a64f39ebe1bacd9004a62eceadac0b122ec3cc2 Issue introduced in 4.4 with commit ddd68ec8f4847b460c9f580076eafe13b031a6fd and fixed in 6.6.145 with commit f80b4afe893dffa9fabdbf80fb4d6782b24a6793 Issue introduced in 4.4 with commit ddd68ec8f4847b460c9f580076eafe13b031a6fd and fixed in 6.12.97 with commit 4b4008dda1d0c6e598d7865631ad4eda63a560f0 Issue introduced in 4.4 with commit ddd68ec8f4847b460c9f580076eafe13b031a6fd and fixed in 6.18.40 with commit bfc9e7be289df11e8e38c98cd78019d67fdd0bd5 Issue introduced in 4.4 with commit ddd68ec8f4847b460c9f580076eafe13b031a6fd and fixed in 7.1.5 with commit a8e169d308775039200bb9c905c7ce420db6e8c5 Issue introduced in 4.4 with commit ddd68ec8f4847b460c9f580076eafe13b031a6fd and fixed in 7.2-rc3 with commit dd068ef044128db655f48323a4acfd5907e04903 Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-64549 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: drivers/bluetooth/bpa10x.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/1813add71e386f77b3040e6c8dc9b7b3ff965a6c https://git.kernel.org/stable/c/bd56c23f1f8681a2857ee924a8bd3abf87c8913b https://git.kernel.org/stable/c/7a64f39ebe1bacd9004a62eceadac0b122ec3cc2 https://git.kernel.org/stable/c/f80b4afe893dffa9fabdbf80fb4d6782b24a6793 https://git.kernel.org/stable/c/4b4008dda1d0c6e598d7865631ad4eda63a560f0 https://git.kernel.org/stable/c/bfc9e7be289df11e8e38c98cd78019d67fdd0bd5 https://git.kernel.org/stable/c/a8e169d308775039200bb9c905c7ce420db6e8c5 https://git.kernel.org/stable/c/dd068ef044128db655f48323a4acfd5907e04903