In the Linux kernel, the following vulnerability has been resolved: Bluetooth: hcievent: Fix using rcuread(un)lock while iterating The usage of rcuread(un)lock while inside listforeachentryrcu is not safe since for the most part entries fetched this way shall be treated as rcudereference: Note that the value returned by rcudereference() is valid only within the enclosing RCU read-side critical section [1]. For example, the following is not legal:: rcureadlock(); p = rcudereference(head.next); rcureadunlock(); x = p->address; /* BUG!!! */ rcureadlock(); y = p->data; /* BUG!!! */ rcuread_unlock();