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.
| Version | Score | Severity | Vector String |
|---|---|---|---|
| 3.1 | 7.1 | High | CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L |
| Product | Vendor | Version |
|---|---|---|
| Linux | Linux | v-Series 1.07 |
| Linux | Linux | all versions before 7.4.2b, v8.1.2 and 8.2.0 |
| Linux | Linux | earlier versions than 8.0.0.129(SP2C00), earlier versions than 8.0.0.129(SP2C01) |
| Linux | Linux | n/a |