CVE-2026-53208 PUBLISHED

Bluetooth: L2CAP: reject BR/EDR signaling packets over MTUsig

Assigner: Linux
Reserved: 09.06.2026 Published: 25.06.2026 Updated: 25.06.2026

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

Bluetooth: L2CAP: reject BR/EDR signaling packets over MTUsig

net/bluetooth/l2cap_core.c:l2cap_sig_channel() accepts BR/EDR signaling packets up to the channel MTU and dispatches each command without enforcing the signaling MTU (MTUsig). A Bluetooth BR/EDR peer within radio range can send a fixed-channel CID 0x0001 packet that is larger than MTUsig and contains many L2CAP_ECHO_REQ commands before pairing. In a real-radio stock-kernel run, one 681-byte signaling packet containing 168 zero-length ECHO_REQ commands made the target transmit 168 ECHO_RSP frames over about 220 ms.

Impact: a Bluetooth BR/EDR peer within radio range, before pairing, can force 168 ECHO_RSP frames from one 681-byte fixed-channel signaling packet containing packed ECHO_REQ commands.

Define Linux's BR/EDR signaling MTU as the spec minimum of 48 bytes and reject any larger signaling packet with one L2CAP_COMMAND_REJECT_RSP carrying L2CAP_REJ_MTU_EXCEEDED before any command is dispatched.

The Bluetooth Core spec wording for MTUExceeded says the reject identifier shall match the first request command in the packet, and that packets containing only responses shall be silently discarded. Linux intentionally deviates from that prescription: silently discarding desynchronizes the peer because the remote stack never learns its responses were dropped, and locating the first request command requires walking command headers past MTUsig, i.e. processing bytes from a packet we have already decided is too large to process. We therefore always emit one reject and use the identifier from the first command header, a single fixed-offset byte read.

The unrestricted BR/EDR signaling parser and ECHO_REQ response path both trace to the initial git import; no later introducing commit is available for a Fixes tag.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to e05c4ac575b457978a7ef441053394169084869c (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to fa5823126239b3e453fac1a2fe50726c7f4a55e1 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to b20e8a98dd29b121f58fcdf51e8576119aba536a (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 214a2042b16b3c8d798a8b9ef9f36094f13a9859 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to a8335f3db15bd1e0e82e0db5d488fabc7d10d1ab (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to dedc92b96dc1d8919a3bdf2495ede68922ef7ebc (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to e2b8acf9405bd9b1baf1c54dc897b0905db689bf (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to dd214733544427587a95f66dbf3adff072568990 (excl.)
  • affected from 0 to 5.10.259 (excl.)
  • affected from 0 to 5.15.210 (excl.)
  • affected from 0 to 6.1.176 (excl.)
  • affected from 0 to 6.6.143 (excl.)
  • affected from 0 to 6.12.94 (excl.)
  • affected from 0 to 6.18.36 (excl.)
  • affected from 0 to 7.0.13 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • unaffected from 5.10.259 to 5.10.* (incl.)
  • unaffected from 5.15.210 to 5.15.* (incl.)
  • unaffected from 6.1.176 to 6.1.* (incl.)
  • unaffected from 6.6.143 to 6.6.* (incl.)
  • unaffected from 6.12.94 to 6.12.* (incl.)
  • unaffected from 6.18.36 to 6.18.* (incl.)
  • unaffected from 7.0.13 to 7.0.* (incl.)
  • unaffected from 7.1 to * (incl.)

References