High · published December 27, 2024
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: hci_event: Fix using rcu_read_(un)lock while iterating
The usage of rcu_read_(un)lock while inside list_for_each_entry_rcu is
not safe since for the most part entries fetched this way shall be
treated as rcu_dereference:
Note that the value returned by rcu_dereference() is valid
only within the enclosing RCU read-side critical section [1]_.
For example, the following is **not** legal::
rcu_read_lock();
p = rcu_dereference(head.next);
rcu_read_unlock();
x = p->address; /* BUG!!! */
rcu_read_lock();
y = p->data; /* BUG!!! */
rcu_read_unlock();
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 6.4.16, < 6.5 | 6.5 |
| linux/linux_kernel | ≥ 6.5.3, < 6.6.67 | 6.6.67 |
| linux/linux_kernel | ≥ 6.7, < 6.12.6 | 6.12.6 |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |