Nixpkgs security tracker

Login with GitHub
⚠️ You are using a production deployment that is still only suitable for demo purposes. Any work done in this might be wiped later without notice.

Suggestion detail

Dismissed
(max. allowed matches exceeded)
created 1 month, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
Bluetooth: bpa10x: avoid OOB read of revision string in bpa10x_setup()

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.

Affected products

Linux
  • =<6.1.*
  • <4.4
  • =<6.18.*
  • <1813add71e386f77b3040e6c8dc9b7b3ff965a6c
  • <f80b4afe893dffa9fabdbf80fb4d6782b24a6793
  • =<6.12.*
  • =<*
  • =<7.1.*
  • <bd56c23f1f8681a2857ee924a8bd3abf87c8913b
  • <bfc9e7be289df11e8e38c98cd78019d67fdd0bd5
  • <dd068ef044128db655f48323a4acfd5907e04903
  • =<6.6.*
  • =<5.15.*
  • ==4.4
  • <a8e169d308775039200bb9c905c7ce420db6e8c5
  • =<5.10.*
  • <7a64f39ebe1bacd9004a62eceadac0b122ec3cc2
  • <4b4008dda1d0c6e598d7865631ad4eda63a560f0