In the Linux kernel, the following vulnerability has been resolved: netfilter: flowtable: publish HW_DEAD after worker is done flow_offload_work_del() sets NF_FLOW_HW_DEAD before the work handler clears NF_FLOW_HW_PENDING. Once a flow is both HW_DYING and HW_DEAD, a concurrent garbage collection pass can remove it and schedule it for RCU freeing. The offload worker holds neither an RCU read lock nor a reference to the flow. If it is preempted after publishing HW_DEAD, the RCU callback can free the flow before the worker resumes and clears HW_PENDING, resulting in a use-after-free. Move HW_DEAD publication to the common worker epilogue after the pending bit is cleared, making it the final flow access by destroy work. Order all preceding flow accesses before publishing the bit that allows garbage collection to free the object.
https://git.kernel.org/stable/c/f92e8f39726ba68a7c42c6b7566be687c8161579
https://git.kernel.org/stable/c/f26652e99f519e6bd34f8a9b48fbb33c603585f2
https://git.kernel.org/stable/c/e20701843032c438f879066a77ea85e361c6b999
https://git.kernel.org/stable/c/d644b23afe1ef509c9961a6d84a093c2587edf02
https://git.kernel.org/stable/c/b4f0f05dfbe836a171bff261f17d098a4d5461ea
https://git.kernel.org/stable/c/b0ef9450e93f2adeb77593db14c2ac7c6c8f5060
https://git.kernel.org/stable/c/56f39c7d139bb76072efe2fb3dcafc13ba915ad8
https://git.kernel.org/stable/c/00e452a7ca9fda135ea3d04a11128d5088e354a8