Description
In the Linux kernel, the following vulnerability has been resolved: netfilter: ipset: Rework long task execution when adding/deleting entries When adding/deleting large number of elements in one step in ipset, it can take a reasonable amount of time and can result in soft lockup errors. The patch 5f7b51bf09ba ("netfilter: ipset: Limit the maximal range of consecutive elements to add/delete") tried to fix it by limiting the max elements to process at all. However it was not enough, it is still possible that we get hung tasks. Lowering the limit is not reasonable, so the approach in this patch is as follows: rely on the method used at resizing sets and save the state when we reach a smaller internal batch limit, unlock/lock and proceed from the saved state. Thus we can avoid long continuous tasks and at the same time removed the limit to add/delete large number of elements in one step. The nfnl mutex is held during the whole operation which prevents one to issue other ipset commands in parallel.
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
e62e62ea912a49f7230620f1bdc20410b943a44c to < ee756980e491c829ba0495bb420b7224a9ee26b2affected5f7b51bf09baca8e4f80cbe879536842bafb5f31 to < a1e1521b463968b4eca7163f61fb6cc54d008061affected5f7b51bf09baca8e4f80cbe879536842bafb5f31 to < 24a828f5a54bdeca0846526860d72b3766c5fe95affected5f7b51bf09baca8e4f80cbe879536842bafb5f31 to < 8964cc36ba011dc0e1041131fa2e91fb4c2a811baffected5f7b51bf09baca8e4f80cbe879536842bafb5f31 to < 5e29dc36bd5e2166b834ceb19990d9e68a734d7daffectede0f824abe0f412f769fb5468b36c2471430bd885affected5.10.157 to < 5.10.163affected5.13.14 to < 5.14affected
Linux Linux
Default version status: affected
5.14affected0 to < 5.14unaffected5.10.163 to ≤ 5.10.*unaffected5.15.87 to ≤ 5.15.*unaffected6.0.19 to ≤ 6.0.*unaffected6.1.5 to ≤ 6.1.*unaffected6.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/ee756980e491c829ba0495bb420b7224a9ee26b2 ↗
- https://git.kernel.org/stable/c/a1e1521b463968b4eca7163f61fb6cc54d008061 ↗
- https://git.kernel.org/stable/c/24a828f5a54bdeca0846526860d72b3766c5fe95 ↗
- https://git.kernel.org/stable/c/8964cc36ba011dc0e1041131fa2e91fb4c2a811b ↗
- https://git.kernel.org/stable/c/5e29dc36bd5e2166b834ceb19990d9e68a734d7d ↗