Description
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: hci_event: Fix OOB read and infinite loop in hci_le_create_big_complete_evt hci_le_create_big_complete_evt() iterates over BT_BOUND connections for a BIG handle using a while loop, accessing ev->bis_handle[i++] on each iteration. However, there is no check that i stays within ev->num_bis before the array access. When a controller sends a LE_Create_BIG_Complete event with fewer bis_handle entries than there are BT_BOUND connections for that BIG, or with num_bis=0, the loop reads beyond the valid bis_handle[] flex array into adjacent heap memory. Since the out-of-bounds values typically exceed HCI_CONN_HANDLE_MAX (0x0EFF), hci_conn_set_handle() rejects them and the connection remains in BT_BOUND state. The same connection is then found again by hci_conn_hash_lookup_big_state(), creating an infinite loop with hci_dev_lock held. Fix this by terminating the BIG if in case not all BIS could be setup properly.
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
a0bfde167b506423111ddb8cd71930497a40fc54 to < 6cb7f67bc28da787499291a562d49a084d9c90cdaffecteda0bfde167b506423111ddb8cd71930497a40fc54 to < 22559ad7654f61727fc270ee4893da9f4b70cf17affecteda0bfde167b506423111ddb8cd71930497a40fc54 to < 77981a507aa0fc001dc37f0dd6631dd2042fed17affecteda0bfde167b506423111ddb8cd71930497a40fc54 to < 665da0baaf0396f9ed3c86ccb3955dcd0b73e774affecteda0bfde167b506423111ddb8cd71930497a40fc54 to < 5ddb8014261137cadaf83ab5617a588d80a22586affectedb475c1109251e30ec21fb574d72a1c71a4ab0039affected2ccde10127447c1a5caad8469fede945bdb62fdfaffected6.4.16 to < 6.5affected6.5.3 to < 6.6affected
Linux Linux
Default version status: affected
6.6affected0 to < 6.6unaffected6.6.140 to ≤ 6.6.*unaffected6.12.88 to ≤ 6.12.*unaffected6.18.30 to ≤ 6.18.*unaffected7.0.7 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/6cb7f67bc28da787499291a562d49a084d9c90cd ↗
- https://git.kernel.org/stable/c/22559ad7654f61727fc270ee4893da9f4b70cf17 ↗
- https://git.kernel.org/stable/c/77981a507aa0fc001dc37f0dd6631dd2042fed17 ↗
- https://git.kernel.org/stable/c/665da0baaf0396f9ed3c86ccb3955dcd0b73e774 ↗
- https://git.kernel.org/stable/c/5ddb8014261137cadaf83ab5617a588d80a22586 ↗