CVE-2026-31497 PUBLISHED

Bluetooth: btusb: clamp SCO altsetting table indices

Assigner: Linux
Reserved: 09.03.2026 Published: 22.04.2026 Updated: 22.04.2026

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

Bluetooth: btusb: clamp SCO altsetting table indices

btusb_work() maps the number of active SCO links to USB alternate settings through a three-entry lookup table when CVSD traffic uses transparent voice settings. The lookup currently indexes alts[] with data->sco_num - 1 without first constraining sco_num to the number of available table entries.

While the table only defines alternate settings for up to three SCO links, data->sco_num comes from hci_conn_num() and is used directly. Cap the lookup to the last table entry before indexing it so the driver keeps selecting the highest supported alternate setting without reading past alts[].

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from baac6276c0a9f36f1fe1f00590ef00d2ba5ba626 to 312c4450fe23014665c163f480edd5ad2e27bbb8 (excl.)
  • affected from baac6276c0a9f36f1fe1f00590ef00d2ba5ba626 to 9dd13a8641de79bc1bc93da55cdd35259a002683 (excl.)
  • affected from baac6276c0a9f36f1fe1f00590ef00d2ba5ba626 to 476c9262b430c38c6a701a3b8176a3f48689085b (excl.)
  • affected from baac6276c0a9f36f1fe1f00590ef00d2ba5ba626 to 6fba3c3d48c927e55611a0f5ea34da88138ed0ff (excl.)
  • affected from baac6276c0a9f36f1fe1f00590ef00d2ba5ba626 to 834cf890d2c3d29cbfa1ee2376c40469c28ec297 (excl.)
  • affected from baac6276c0a9f36f1fe1f00590ef00d2ba5ba626 to 1019028eb124564cf7bca58a16f1df8a1ca30726 (excl.)
  • affected from baac6276c0a9f36f1fe1f00590ef00d2ba5ba626 to 21c254202f9d78abe0fcd642a92966deb92bd226 (excl.)
  • affected from baac6276c0a9f36f1fe1f00590ef00d2ba5ba626 to 129fa608b6ad08b8ab7178eeb2ec272c993aaccc (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 5.8 is affected
  • unaffected from 0 to 5.8 (excl.)
  • unaffected from 5.10.253 to 5.10.* (incl.)
  • unaffected from 5.15.203 to 5.15.* (incl.)
  • unaffected from 6.1.168 to 6.1.* (incl.)
  • unaffected from 6.6.131 to 6.6.* (incl.)
  • unaffected from 6.12.80 to 6.12.* (incl.)
  • unaffected from 6.18.21 to 6.18.* (incl.)
  • unaffected from 6.19.11 to 6.19.* (incl.)
  • unaffected from 7.0 to * (incl.)

References