All vulnerabilities
CVE-2026-98601

Linux: Bluetooth: btintel_pcie: validate device-supplied DMA indices

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.20%Chance of exploitation activity in the next 30 days, higher than 9% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in8ec5838a35b03ac0cf3602452a369898051ffaf9Also 37a11129345337efd6eef8e62b03b6348cd0dd8bCVE List
Published18 Oct 2026Updated 19 Oct 2026CVE List

What fixes it

  • 8ec5838a35b03ac0cf3602452a369898051ffaf9LinuxCVE List
  • 37a11129345337efd6eef8e62b03b6348cd0dd8bLinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: btintel_pcie: validate device-supplied DMA indices

In btintel_pcie_msix_rx_handle(), the driver processes RX completion descriptors (urbd1) written by the PCIe device into DMA-coherent memory. urbd1->frbd_tag (a 16-bit field fully controlled by the device firmware via DMA) is used directly as an array index into rxq->bufs[] without any bounds check. rxq->bufs[] has only BTINTEL_PCIE_RX_DESCS_COUNT (64) entries, while frbd_tag can be any value 0-65535. A malicious or malfunctioning device can write an out-of-range frbd_tag, causing the driver to dereference an out-of-bounds data_buf pointer.

Additionally, cr_hia is read from a DMA-shared index array also writable by the device; if the device sets cr_hia >= rxq->count, the while-loop never terminates because cr_tia is wrapped via modulo rxq->count and can never equal an out-of-range cr_hia.

Add bounds validation for cr_hia and frbd_tag in the RX path, and cr_hia in the TX path. Log invalid values with bt_dev_err before returning.

Text from CVE List

Affected versions 10

  • Linuxaffected: c2b636b3f788d10486a6691ad6dd3ec4c93bd78e before f42cd95e679d5b78611cd2208cd1c41ad0045ffaCVE List
  • Linuxaffected: c2b636b3f788d10486a6691ad6dd3ec4c93bd78e before 8ec5838a35b03ac0cf3602452a369898051ffaf9CVE List
  • Linuxaffected: c2b636b3f788d10486a6691ad6dd3ec4c93bd78e before b29b70bfa12133423924fcd0327c19a802f7e368CVE List
  • Linuxaffected: c2b636b3f788d10486a6691ad6dd3ec4c93bd78e before 37a11129345337efd6eef8e62b03b6348cd0dd8bCVE List
  • Linuxaffected: 6.10CVE List
  • Linuxunaffected: all versions before 6.10CVE List
  • Linuxunaffected: 6.12.112 through 6.12.*CVE List
  • Linuxunaffected: 6.18.55 through 6.18.*CVE List
  • Linuxunaffected: 7.2.9 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 4