Description
In the Linux kernel, the following vulnerability has been resolved: xfrm: Wait for RCU readers during policy netns exit xfrm_policy_fini() frees the policy_bydst hash tables after flushing the policy work items and deleting all policies, but it does not wait for concurrent RCU readers to leave their read-side critical sections first. The policy_bydst tables are published via rcu_assign_pointer() and are looked up through rcu_dereference_check(), so netns teardown must also wait for an RCU grace period before freeing the table memory. Fix this by adding synchronize_rcu() before freeing the policy hash tables.
Product status
e1e551bc56302b80ff930c966f9985095fb1b70d (git) before b66920a3348c0f63ba18365248fa21fbf0b3a937
e1e551bc56302b80ff930c966f9985095fb1b70d (git) before 438b1f668ad58f46ce699bb48e4698a7839e3f9e
e1e551bc56302b80ff930c966f9985095fb1b70d (git) before 3733fce2871c9bca9dd18a1a23b1432ea215a094
e1e551bc56302b80ff930c966f9985095fb1b70d (git) before 33a3149dd81a1e2f52b80ee1e0fc380b39f3d028
e1e551bc56302b80ff930c966f9985095fb1b70d (git) before 069daad4f2ae9c5c108131995529d5f02392c446
4.9
Any version before 4.9
6.6.136 (semver)
6.12.83 (semver)
6.18.24 (semver)
6.19.14 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/b66920a3348c0f63ba18365248fa21fbf0b3a937
git.kernel.org/...c/438b1f668ad58f46ce699bb48e4698a7839e3f9e
git.kernel.org/...c/3733fce2871c9bca9dd18a1a23b1432ea215a094
git.kernel.org/...c/33a3149dd81a1e2f52b80ee1e0fc380b39f3d028
git.kernel.org/...c/069daad4f2ae9c5c108131995529d5f02392c446