CVE-2025-21959

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
01/04/2025
Last modified:
03/11/2025

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> netfilter: nf_conncount: Fully initialize struct nf_conncount_tuple in insert_tree()<br /> <br /> Since commit b36e4523d4d5 ("netfilter: nf_conncount: fix garbage<br /> collection confirm race"), `cpu` and `jiffies32` were introduced to<br /> the struct nf_conncount_tuple.<br /> <br /> The commit made nf_conncount_add() initialize `conn-&gt;cpu` and<br /> `conn-&gt;jiffies32` when allocating the struct.<br /> In contrast, count_tree() was not changed to initialize them.<br /> <br /> By commit 34848d5c896e ("netfilter: nf_conncount: Split insert and<br /> traversal"), count_tree() was split and the relevant allocation<br /> code now resides in insert_tree().<br /> Initialize `conn-&gt;cpu` and `conn-&gt;jiffies32` in insert_tree().<br /> <br /> BUG: KMSAN: uninit-value in find_or_evict net/netfilter/nf_conncount.c:117 [inline]<br /> BUG: KMSAN: uninit-value in __nf_conncount_add+0xd9c/0x2850 net/netfilter/nf_conncount.c:143<br /> find_or_evict net/netfilter/nf_conncount.c:117 [inline]<br /> __nf_conncount_add+0xd9c/0x2850 net/netfilter/nf_conncount.c:143<br /> count_tree net/netfilter/nf_conncount.c:438 [inline]<br /> nf_conncount_count+0x82f/0x1e80 net/netfilter/nf_conncount.c:521<br /> connlimit_mt+0x7f6/0xbd0 net/netfilter/xt_connlimit.c:72<br /> __nft_match_eval net/netfilter/nft_compat.c:403 [inline]<br /> nft_match_eval+0x1a5/0x300 net/netfilter/nft_compat.c:433<br /> expr_call_ops_eval net/netfilter/nf_tables_core.c:240 [inline]<br /> nft_do_chain+0x426/0x2290 net/netfilter/nf_tables_core.c:288<br /> nft_do_chain_ipv4+0x1a5/0x230 net/netfilter/nft_chain_filter.c:23<br /> nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]<br /> nf_hook_slow+0xf4/0x400 net/netfilter/core.c:626<br /> nf_hook_slow_list+0x24d/0x860 net/netfilter/core.c:663<br /> NF_HOOK_LIST include/linux/netfilter.h:350 [inline]<br /> ip_sublist_rcv+0x17b7/0x17f0 net/ipv4/ip_input.c:633<br /> ip_list_rcv+0x9ef/0xa40 net/ipv4/ip_input.c:669<br /> __netif_receive_skb_list_ptype net/core/dev.c:5936 [inline]<br /> __netif_receive_skb_list_core+0x15c5/0x1670 net/core/dev.c:5983<br /> __netif_receive_skb_list net/core/dev.c:6035 [inline]<br /> netif_receive_skb_list_internal+0x1085/0x1700 net/core/dev.c:6126<br /> netif_receive_skb_list+0x5a/0x460 net/core/dev.c:6178<br /> xdp_recv_frames net/bpf/test_run.c:280 [inline]<br /> xdp_test_run_batch net/bpf/test_run.c:361 [inline]<br /> bpf_test_run_xdp_live+0x2e86/0x3480 net/bpf/test_run.c:390<br /> bpf_prog_test_run_xdp+0xf1d/0x1ae0 net/bpf/test_run.c:1316<br /> bpf_prog_test_run+0x5e5/0xa30 kernel/bpf/syscall.c:4407<br /> __sys_bpf+0x6aa/0xd90 kernel/bpf/syscall.c:5813<br /> __do_sys_bpf kernel/bpf/syscall.c:5902 [inline]<br /> __se_sys_bpf kernel/bpf/syscall.c:5900 [inline]<br /> __ia32_sys_bpf+0xa0/0xe0 kernel/bpf/syscall.c:5900<br /> ia32_sys_call+0x394d/0x4180 arch/x86/include/generated/asm/syscalls_32.h:358<br /> do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]<br /> __do_fast_syscall_32+0xb0/0x110 arch/x86/entry/common.c:387<br /> do_fast_syscall_32+0x38/0x80 arch/x86/entry/common.c:412<br /> do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:450<br /> entry_SYSENTER_compat_after_hwframe+0x84/0x8e<br /> <br /> Uninit was created at:<br /> slab_post_alloc_hook mm/slub.c:4121 [inline]<br /> slab_alloc_node mm/slub.c:4164 [inline]<br /> kmem_cache_alloc_noprof+0x915/0xe10 mm/slub.c:4171<br /> insert_tree net/netfilter/nf_conncount.c:372 [inline]<br /> count_tree net/netfilter/nf_conncount.c:450 [inline]<br /> nf_conncount_count+0x1415/0x1e80 net/netfilter/nf_conncount.c:521<br /> connlimit_mt+0x7f6/0xbd0 net/netfilter/xt_connlimit.c:72<br /> __nft_match_eval net/netfilter/nft_compat.c:403 [inline]<br /> nft_match_eval+0x1a5/0x300 net/netfilter/nft_compat.c:433<br /> expr_call_ops_eval net/netfilter/nf_tables_core.c:240 [inline]<br /> nft_do_chain+0x426/0x2290 net/netfilter/nf_tables_core.c:288<br /> nft_do_chain_ipv4+0x1a5/0x230 net/netfilter/nft_chain_filter.c:23<br /> nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]<br /> nf_hook_slow+0xf4/0x400 net/netfilter/core.c:626<br /> nf_hook_slow_list+0x24d/0x860 net/netfilter/core.c:663<br /> NF_HOOK_LIST include/linux/netfilter.h:350 [inline]<br /> ip_sublist_rcv+0x17b7/0x17f0 net/ipv4/ip_input.c:633<br /> ip_list_rcv+0x9ef/0xa40 net/ip<br /> ---truncated---

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.14.92 (including) 4.15 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.18 (including) 5.4.292 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.5 (including) 5.10.236 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (including) 5.15.180 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (including) 6.1.132 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (including) 6.6.84 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (including) 6.12.20 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 (including) 6.13.8 (excluding)
cpe:2.3:o:linux:linux_kernel:6.14:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc6:*:*:*:*:*:*