CVE-2025-37961
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
20/05/2025
Last modified:
21/05/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
ipvs: fix uninit-value for saddr in do_output_route4<br />
<br />
syzbot reports for uninit-value for the saddr argument [1].<br />
commit 4754957f04f5 ("ipvs: do not use random local source address for<br />
tunnels") already implies that the input value of saddr<br />
should be ignored but the code is still reading it which can prevent<br />
to connect the route. Fix it by changing the argument to ret_saddr.<br />
<br />
[1]<br />
BUG: KMSAN: uninit-value in do_output_route4+0x42c/0x4d0 net/netfilter/ipvs/ip_vs_xmit.c:147<br />
do_output_route4+0x42c/0x4d0 net/netfilter/ipvs/ip_vs_xmit.c:147<br />
__ip_vs_get_out_rt+0x403/0x21d0 net/netfilter/ipvs/ip_vs_xmit.c:330<br />
ip_vs_tunnel_xmit+0x205/0x2380 net/netfilter/ipvs/ip_vs_xmit.c:1136<br />
ip_vs_in_hook+0x1aa5/0x35b0 net/netfilter/ipvs/ip_vs_core.c:2063<br />
nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]<br />
nf_hook_slow+0xf7/0x400 net/netfilter/core.c:626<br />
nf_hook include/linux/netfilter.h:269 [inline]<br />
__ip_local_out+0x758/0x7e0 net/ipv4/ip_output.c:118<br />
ip_local_out net/ipv4/ip_output.c:127 [inline]<br />
ip_send_skb+0x6a/0x3c0 net/ipv4/ip_output.c:1501<br />
udp_send_skb+0xfda/0x1b70 net/ipv4/udp.c:1195<br />
udp_sendmsg+0x2fe3/0x33c0 net/ipv4/udp.c:1483<br />
inet_sendmsg+0x1fc/0x280 net/ipv4/af_inet.c:851<br />
sock_sendmsg_nosec net/socket.c:712 [inline]<br />
__sock_sendmsg+0x267/0x380 net/socket.c:727<br />
____sys_sendmsg+0x91b/0xda0 net/socket.c:2566<br />
___sys_sendmsg+0x28d/0x3c0 net/socket.c:2620<br />
__sys_sendmmsg+0x41d/0x880 net/socket.c:2702<br />
__compat_sys_sendmmsg net/compat.c:360 [inline]<br />
__do_compat_sys_sendmmsg net/compat.c:367 [inline]<br />
__se_compat_sys_sendmmsg net/compat.c:364 [inline]<br />
__ia32_compat_sys_sendmmsg+0xc8/0x140 net/compat.c:364<br />
ia32_sys_call+0x3ffa/0x41f0 arch/x86/include/generated/asm/syscalls_32.h:346<br />
do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]<br />
__do_fast_syscall_32+0xb0/0x110 arch/x86/entry/syscall_32.c:306<br />
do_fast_syscall_32+0x38/0x80 arch/x86/entry/syscall_32.c:331<br />
do_SYSENTER_32+0x1f/0x30 arch/x86/entry/syscall_32.c:369<br />
entry_SYSENTER_compat_after_hwframe+0x84/0x8e<br />
<br />
Uninit was created at:<br />
slab_post_alloc_hook mm/slub.c:4167 [inline]<br />
slab_alloc_node mm/slub.c:4210 [inline]<br />
__kmalloc_cache_noprof+0x8fa/0xe00 mm/slub.c:4367<br />
kmalloc_noprof include/linux/slab.h:905 [inline]<br />
ip_vs_dest_dst_alloc net/netfilter/ipvs/ip_vs_xmit.c:61 [inline]<br />
__ip_vs_get_out_rt+0x35d/0x21d0 net/netfilter/ipvs/ip_vs_xmit.c:323<br />
ip_vs_tunnel_xmit+0x205/0x2380 net/netfilter/ipvs/ip_vs_xmit.c:1136<br />
ip_vs_in_hook+0x1aa5/0x35b0 net/netfilter/ipvs/ip_vs_core.c:2063<br />
nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]<br />
nf_hook_slow+0xf7/0x400 net/netfilter/core.c:626<br />
nf_hook include/linux/netfilter.h:269 [inline]<br />
__ip_local_out+0x758/0x7e0 net/ipv4/ip_output.c:118<br />
ip_local_out net/ipv4/ip_output.c:127 [inline]<br />
ip_send_skb+0x6a/0x3c0 net/ipv4/ip_output.c:1501<br />
udp_send_skb+0xfda/0x1b70 net/ipv4/udp.c:1195<br />
udp_sendmsg+0x2fe3/0x33c0 net/ipv4/udp.c:1483<br />
inet_sendmsg+0x1fc/0x280 net/ipv4/af_inet.c:851<br />
sock_sendmsg_nosec net/socket.c:712 [inline]<br />
__sock_sendmsg+0x267/0x380 net/socket.c:727<br />
____sys_sendmsg+0x91b/0xda0 net/socket.c:2566<br />
___sys_sendmsg+0x28d/0x3c0 net/socket.c:2620<br />
__sys_sendmmsg+0x41d/0x880 net/socket.c:2702<br />
__compat_sys_sendmmsg net/compat.c:360 [inline]<br />
__do_compat_sys_sendmmsg net/compat.c:367 [inline]<br />
__se_compat_sys_sendmmsg net/compat.c:364 [inline]<br />
__ia32_compat_sys_sendmmsg+0xc8/0x140 net/compat.c:364<br />
ia32_sys_call+0x3ffa/0x41f0 arch/x86/include/generated/asm/syscalls_32.h:346<br />
do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]<br />
__do_fast_syscall_32+0xb0/0x110 arch/x86/entry/syscall_32.c:306<br />
do_fast_syscall_32+0x38/0x80 arch/x86/entry/syscall_32.c:331<br />
do_SYSENTER_32+0x1f/0x30 arch/x86/entry/syscall_32.c:369<br />
entry_SYSENTER_compat_after_hwframe+0x84/0x8e<br />
<br />
CPU: 0 UID: 0 PID: 22408 Comm: syz.4.5165 Not tainted 6.15.0-rc3-syzkaller-00019-gbc3372351d0c #0 PREEMPT(undef)<br />
Hardware name: Google Google Compute Engi<br />
---truncated---
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/0160ac84fb03a0bd8dce8a42cb25bfaeedd110f4
- https://git.kernel.org/stable/c/7d0032112a0380d0b8d7c9005f621928a9b9fc76
- https://git.kernel.org/stable/c/a3a1b784791a3cbfc6e05c4d8a3c321ac5136e25
- https://git.kernel.org/stable/c/adbc8cc1162951cb152ed7f147d5fbd35ce3e62f
- https://git.kernel.org/stable/c/e34090d7214e0516eb8722aee295cb2507317c07