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.
References
Configurations
Configuration 1 (hide)
|
History
22 May 2025, 13:15
Type | Values Removed | Values Added |
---|---|---|
References |
|
06 Jan 2025, 19:39
Type | Values Removed | Values Added |
---|---|---|
CPE | cpe:2.3:o:linux:linux_kernel:6.13:rc1:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.13:rc2:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
|
First Time |
Linux
Linux linux Kernel |
|
CWE | NVD-CWE-noinfo | |
References | () https://git.kernel.org/stable/c/27f0574253f6c24c8ee4e3f0a685b75ed3a256ed - Patch | |
References | () https://git.kernel.org/stable/c/7cf0bd232b565d9852cb25fd094f77254773e048 - Patch | |
References | () https://git.kernel.org/stable/c/b04df3da1b5c6f6dc7cdccc37941740c078c4043 - Patch | |
Summary |
|
|
CVSS |
v2 : v3 : |
v2 : unknown
v3 : 5.5 |
27 Dec 2024, 15:15
Type | Values Removed | Values Added |
---|---|---|
New CVE |
Information
Published : 2024-12-27 15:15
Updated : 2025-05-22 13:15
NVD link : CVE-2024-56655
Mitre link : CVE-2024-56655
CVE.ORG link : CVE-2024-56655
JSON object : View
Products Affected
linux
- linux_kernel
CWE