We use these services and cookies to improve your user experience. You may opt out if you wish, however, this may limit some features on this site.

Please see our statement on Data Privacy.

Crisp.chat (Helpdesk and Chat)

Ok

THREATINT
PUBLISHED

CVE-2024-56655

netfilter: nf_tables: do not defer rule destruction via call_rcu



Description

In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_tables: do not defer rule destruction via call_rcu nf_tables_chain_destroy can sleep, it can't be used from call_rcu callbacks. Moreover, nf_tables_rule_release() is only safe for error unwinding, while transaction mutex is held and the to-be-desroyed rule was not exposed to either dataplane or dumps, as it deactives+frees without the required synchronize_rcu() in-between. nft_rule_expr_deactivate() callbacks will change ->use counters of other chains/sets, see e.g. nft_lookup .deactivate callback, these must be serialized via transaction mutex. Also add a few lockdep asserts to make this more explicit. Calling synchronize_rcu() isn't ideal, but fixing this without is hard and way more intrusive. As-is, we can get: WARNING: .. net/netfilter/nf_tables_api.c:5515 nft_set_destroy+0x.. Workqueue: events nf_tables_trans_destroy_work RIP: 0010:nft_set_destroy+0x3fe/0x5c0 Call Trace: <TASK> nf_tables_trans_destroy_work+0x6b7/0xad0 process_one_work+0x64a/0xce0 worker_thread+0x613/0x10d0 In case the synchronize_rcu becomes an issue, we can explore alternatives. One way would be to allocate nft_trans_rule objects + one nft_trans_chain object, deactivate the rules + the chain and then defer the freeing to the nft destroy workqueue. We'd still need to keep the synchronize_rcu path as a fallback to handle -ENOMEM corner cases though.

Reserved 2024-12-27 | Published 2024-12-27 | Updated 2025-01-20 | Assigner Linux

Product status

Default status
unaffected

bfd05c68e4c6320304e9f371ffa356b6e4b9cc53 before 27f0574253f6c24c8ee4e3f0a685b75ed3a256ed
affected

c03d278fdf35e73dd0ec543b9b556876b9d9a8dc before 7cf0bd232b565d9852cb25fd094f77254773e048
affected

c03d278fdf35e73dd0ec543b9b556876b9d9a8dc before b04df3da1b5c6f6dc7cdccc37941740c078c4043
affected

Default status
affected

6.12
affected

Any version before 6.12
unaffected

6.6.67
unaffected

6.12.6
unaffected

6.13
unaffected

References

git.kernel.org/...c/27f0574253f6c24c8ee4e3f0a685b75ed3a256ed

git.kernel.org/...c/7cf0bd232b565d9852cb25fd094f77254773e048

git.kernel.org/...c/b04df3da1b5c6f6dc7cdccc37941740c078c4043

cve.org (CVE-2024-56655)

nvd.nist.gov (CVE-2024-56655)

Download JSON

Share this page
https://cve.threatint.com/CVE/CVE-2024-56655

Support options

Helpdesk Chat, Email, Knowledgebase
Subscribe to our newsletter to learn more about our work.