High · published May 5, 2026
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: L2CAP: Fix type confusion in l2cap_ecred_reconf_rsp()
l2cap_ecred_reconf_rsp() casts the incoming data to struct
l2cap_ecred_conn_rsp (the ECRED *connection* response, 8 bytes with
result at offset 6) instead of struct l2cap_ecred_reconf_rsp (2 bytes
with result at offset 0).
This causes two problems:
- The sizeof(*rsp) length check requires 8 bytes instead of the
correct 2, so valid L2CAP_ECRED_RECONF_RSP packets are rejected
with -EPROTO.
- rsp->result reads from offset 6 instead of offset 0, returning
wrong data when the packet is large enough to pass the check.
Fix by using the correct type. Also pass the already byte-swapped
result variable to BT_DBG instead of the raw __le16 field.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 5.7, < 5.10.253 | 5.10.253 |
| linux/linux_kernel | ≥ 5.11, < 5.15.203 | 5.15.203 |
| linux/linux_kernel | ≥ 5.16, < 6.1.167 | 6.1.167 |
| linux/linux_kernel | ≥ 6.2, < 6.6.130 | 6.6.130 |
| linux/linux_kernel | ≥ 6.7, < 6.12.78 | 6.12.78 |
| linux/linux_kernel | ≥ 6.13, < 6.18.20 | 6.18.20 |
| linux/linux_kernel | ≥ 6.19, < 6.19.10 | 6.19.10 |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |