Description
In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_tables: unconditionally bump set->nelems before insertion In case that the set is full, a new element gets published then removed without waiting for the RCU grace period, while RCU reader can be walking over it already. To address this issue, add the element transaction even if set is full, but toggle the set_full flag to report -ENFILE so the abort path safely unwinds the set to its previous state. As for element updates, decrement set->nelems to restore it. A simpler fix is to call synchronize_rcu() in the error path. However, with a large batch adding elements to already maxed-out set, this could cause noticeable slowdown of such batches.
Product status
35d0ac9070ef619e3bf44324375878a1c540387b (git) before e3ccb11fc8249759d23326038c8db987ddaabc77
35d0ac9070ef619e3bf44324375878a1c540387b (git) before 86bc4b1a0f672d47ac19f9022432cb6a2e01cb33
35d0ac9070ef619e3bf44324375878a1c540387b (git) before 6826131c7674329335ca25df2550163eb8a1fd0c
35d0ac9070ef619e3bf44324375878a1c540387b (git) before ccb8c8f3c1127cf34d18c737309897c68046bf21
35d0ac9070ef619e3bf44324375878a1c540387b (git) before def602e498a4f951da95c95b1b8ce8ae68aa733a
fefdd79403e89b0c673965343b92e2e01e2713a8 (git)
4.9.33 (semver) before 4.10
4.10
Any version before 4.10
6.6.141 (semver)
6.12.91 (semver)
6.18.17 (semver)
6.19.7 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/e3ccb11fc8249759d23326038c8db987ddaabc77
git.kernel.org/...c/86bc4b1a0f672d47ac19f9022432cb6a2e01cb33
git.kernel.org/...c/6826131c7674329335ca25df2550163eb8a1fd0c
git.kernel.org/...c/ccb8c8f3c1127cf34d18c737309897c68046bf21
git.kernel.org/...c/def602e498a4f951da95c95b1b8ce8ae68aa733a