Description
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: hci_sock: validate event length before filtering is_filtered_packet() reads the event code from skb->data[0] without first checking that the skb is nonempty. When an opcode filter is configured, it also reads the command opcode at offsets 3 or 4 without checking that a Command Complete or Command Status event is long enough. hci_send_to_sock() invokes the filter before hci_event_packet() validates the event header. A malformed event supplied by a controller or a vhci device can therefore cause an out-of-bounds read. Keep the unmasked event code for the opcode checks. The masked value is needed for the 64-bit event bitmap, but using it to identify command events aliases event codes above 0x3f. In particular, Synchronous Train Complete (0x4f) was treated as Command Status (0x0f) even though its payload has no opcode. Reject actual command events that are too short for the field being inspected. A truncated command event cannot match a configured opcode.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 39e99d85071bca0feeec3164a9437ca1bff297fcaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < ebdd49cec380731844ed9df4092a29a014623df4affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 2501a3b7b7144d1d11939b355a48ed01f83d0c62affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < dca25c204f71be0556a15177dbe037237ac43e5eaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 3976bbcd43b9b94c53ac9b0fd28888011588f4ccaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < f894f6292d5122cd62d30600736b4a0ae79f7770affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 1a92763c2ba721bf113cd83f913fe8c511b4a4dcaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < b0a6cf99afd57a39598b1beca0e86ef5004980deaffected
Linux Linux
Default version status: affected
2.6.12affected0 to < 2.6.12unaffected5.10.271 to ≤ 5.10.*unaffected5.15.222 to ≤ 5.15.*unaffected6.1.189 to ≤ 6.1.*unaffected6.6.158 to ≤ 6.6.*unaffected6.12.112 to ≤ 6.12.*unaffected6.18.55 to ≤ 6.18.*unaffected7.2.9 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/39e99d85071bca0feeec3164a9437ca1bff297fc ↗
- https://git.kernel.org/stable/c/ebdd49cec380731844ed9df4092a29a014623df4 ↗
- https://git.kernel.org/stable/c/2501a3b7b7144d1d11939b355a48ed01f83d0c62 ↗
- https://git.kernel.org/stable/c/dca25c204f71be0556a15177dbe037237ac43e5e ↗
- https://git.kernel.org/stable/c/3976bbcd43b9b94c53ac9b0fd28888011588f4cc ↗
- https://git.kernel.org/stable/c/f894f6292d5122cd62d30600736b4a0ae79f7770 ↗
- https://git.kernel.org/stable/c/1a92763c2ba721bf113cd83f913fe8c511b4a4dc ↗
- https://git.kernel.org/stable/c/b0a6cf99afd57a39598b1beca0e86ef5004980de ↗