Description
In the Linux kernel, the following vulnerability has been resolved: netfilter: ipset: fix performance regression in swap operation The patch "netfilter: ipset: fix race condition between swap/destroy and kernel side add/del/test", commit 28628fa9 fixes a race condition. But the synchronize_rcu() added to the swap function unnecessarily slows it down: it can safely be moved to destroy and use call_rcu() instead. Eric Dumazet pointed out that simply calling the destroy functions as rcu callback does not work: sets with timeout use garbage collectors which need cancelling at destroy which can wait. Therefore the destroy functions are split into two: cancelling garbage collectors safely at executing the command received by netlink and moving the remaining part only into the rcu callback.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
427deb5ba5661c4ae1cfb35955d2e01bd5f3090a to < c7f2733e5011bfd136f1ca93497394d43aa76225affectede7152a138a5ac77439ff4e7a7533448a7d4c260d to < a24d5f2ac8ef702a58e55ec276aad29b4bd97e05affected8bb930c3a1eacec1b14817f565ff81667c7c5dfa to < c2dc077d8f722a1c73a24e674f925602ee5ece49affected875ee3a09e27b7adb7006ca6d16faf7f33415aa5 to < 653bc5e6d9995d7d5f497c665b321875a626161caffected23c31036f862582f98386120aee55c9ae23d7899 to < b93a6756a01f4fd2f329a39216f9824c56a66397affected28628fa952fefc7f2072ce6e8016968cc452b1ba to < 970709a67696b100a57b33af1a3d75fc34b747ebaffected28628fa952fefc7f2072ce6e8016968cc452b1ba to < 97f7cf1cd80eeed3b7c808b7c12463295c751001affecteda12606e5ad0cee8f4ba3ec68561c4d6275d2df57affected5.4.264 to < 5.4.269affected5.10.204 to < 5.10.210affected5.15.143 to < 5.15.149affected6.1.68 to < 6.1.79affected6.6.7 to < 6.6.18affected4.19.302 to < 4.20affected
Linux Linux
Default version status: affected
6.7affected0 to < 6.7unaffected5.4.269 to ≤ 5.4.*unaffected5.10.210 to ≤ 5.10.*unaffected5.15.149 to ≤ 5.15.*unaffected6.1.79 to ≤ 6.1.*unaffected6.6.18 to ≤ 6.6.*unaffected6.7.6 to ≤ 6.7.*unaffected6.8 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/c7f2733e5011bfd136f1ca93497394d43aa76225 ↗
- https://git.kernel.org/stable/c/a24d5f2ac8ef702a58e55ec276aad29b4bd97e05 ↗
- https://git.kernel.org/stable/c/c2dc077d8f722a1c73a24e674f925602ee5ece49 ↗
- https://git.kernel.org/stable/c/653bc5e6d9995d7d5f497c665b321875a626161c ↗
- https://git.kernel.org/stable/c/b93a6756a01f4fd2f329a39216f9824c56a66397 ↗
- https://git.kernel.org/stable/c/970709a67696b100a57b33af1a3d75fc34b747eb ↗
- https://git.kernel.org/stable/c/97f7cf1cd80eeed3b7c808b7c12463295c751001 ↗
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html ↗