On Sat, May 03, 2025 at 01:01:18AM +0300, Julian Anastasov wrote: > syzbot reports for uninit-value for the saddr argument [1]. > commit 4754957f04f5 ("ipvs: do not use random local source address for > tunnels") already implies that the input value of saddr > should be ignored but the code is still reading it which can prevent > to connect the route. Fix it by changing the argument to ret_saddr. > > [1] > BUG: KMSAN: uninit-value in do_output_route4+0x42c/0x4d0 net/netfilter/ipvs/ip_vs_xmit.c:147 > do_output_route4+0x42c/0x4d0 net/netfilter/ipvs/ip_vs_xmit.c:147 > __ip_vs_get_out_rt+0x403/0x21d0 net/netfilter/ipvs/ip_vs_xmit.c:330 > ip_vs_tunnel_xmit+0x205/0x2380 net/netfilter/ipvs/ip_vs_xmit.c:1136 > ip_vs_in_hook+0x1aa5/0x35b0 net/netfilter/ipvs/ip_vs_core.c:2063 > nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline] > nf_hook_slow+0xf7/0x400 net/netfilter/core.c:626 > nf_hook include/linux/netfilter.h:269 [inline] > __ip_local_out+0x758/0x7e0 net/ipv4/ip_output.c:118 > ip_local_out net/ipv4/ip_output.c:127 [inline] > ip_send_skb+0x6a/0x3c0 net/ipv4/ip_output.c:1501 > udp_send_skb+0xfda/0x1b70 net/ipv4/udp.c:1195 > udp_sendmsg+0x2fe3/0x33c0 net/ipv4/udp.c:1483 > inet_sendmsg+0x1fc/0x280 net/ipv4/af_inet.c:851 > sock_sendmsg_nosec net/socket.c:712 [inline] > __sock_sendmsg+0x267/0x380 net/socket.c:727 > ____sys_sendmsg+0x91b/0xda0 net/socket.c:2566 > ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2620 > __sys_sendmmsg+0x41d/0x880 net/socket.c:2702 > __compat_sys_sendmmsg net/compat.c:360 [inline] > __do_compat_sys_sendmmsg net/compat.c:367 [inline] > __se_compat_sys_sendmmsg net/compat.c:364 [inline] > __ia32_compat_sys_sendmmsg+0xc8/0x140 net/compat.c:364 > ia32_sys_call+0x3ffa/0x41f0 arch/x86/include/generated/asm/syscalls_32.h:346 > do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline] > __do_fast_syscall_32+0xb0/0x110 arch/x86/entry/syscall_32.c:306 > do_fast_syscall_32+0x38/0x80 arch/x86/entry/syscall_32.c:331 > do_SYSENTER_32+0x1f/0x30 arch/x86/entry/syscall_32.c:369 > entry_SYSENTER_compat_after_hwframe+0x84/0x8e > > Uninit was created at: > slab_post_alloc_hook mm/slub.c:4167 [inline] > slab_alloc_node mm/slub.c:4210 [inline] > __kmalloc_cache_noprof+0x8fa/0xe00 mm/slub.c:4367 > kmalloc_noprof include/linux/slab.h:905 [inline] > ip_vs_dest_dst_alloc net/netfilter/ipvs/ip_vs_xmit.c:61 [inline] > __ip_vs_get_out_rt+0x35d/0x21d0 net/netfilter/ipvs/ip_vs_xmit.c:323 > ip_vs_tunnel_xmit+0x205/0x2380 net/netfilter/ipvs/ip_vs_xmit.c:1136 > ip_vs_in_hook+0x1aa5/0x35b0 net/netfilter/ipvs/ip_vs_core.c:2063 > nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline] > nf_hook_slow+0xf7/0x400 net/netfilter/core.c:626 > nf_hook include/linux/netfilter.h:269 [inline] > __ip_local_out+0x758/0x7e0 net/ipv4/ip_output.c:118 > ip_local_out net/ipv4/ip_output.c:127 [inline] > ip_send_skb+0x6a/0x3c0 net/ipv4/ip_output.c:1501 > udp_send_skb+0xfda/0x1b70 net/ipv4/udp.c:1195 > udp_sendmsg+0x2fe3/0x33c0 net/ipv4/udp.c:1483 > inet_sendmsg+0x1fc/0x280 net/ipv4/af_inet.c:851 > sock_sendmsg_nosec net/socket.c:712 [inline] > __sock_sendmsg+0x267/0x380 net/socket.c:727 > ____sys_sendmsg+0x91b/0xda0 net/socket.c:2566 > ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2620 > __sys_sendmmsg+0x41d/0x880 net/socket.c:2702 > __compat_sys_sendmmsg net/compat.c:360 [inline] > __do_compat_sys_sendmmsg net/compat.c:367 [inline] > __se_compat_sys_sendmmsg net/compat.c:364 [inline] > __ia32_compat_sys_sendmmsg+0xc8/0x140 net/compat.c:364 > ia32_sys_call+0x3ffa/0x41f0 arch/x86/include/generated/asm/syscalls_32.h:346 > do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline] > __do_fast_syscall_32+0xb0/0x110 arch/x86/entry/syscall_32.c:306 > do_fast_syscall_32+0x38/0x80 arch/x86/entry/syscall_32.c:331 > do_SYSENTER_32+0x1f/0x30 arch/x86/entry/syscall_32.c:369 > entry_SYSENTER_compat_after_hwframe+0x84/0x8e > > CPU: 0 UID: 0 PID: 22408 Comm: syz.4.5165 Not tainted 6.15.0-rc3-syzkaller-00019-gbc3372351d0c #0 PREEMPT(undef) > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025 > > Reported-by: syzbot+04b9a82855c8aed20860@xxxxxxxxxxxxxxxxxxxxxxxxx > Closes: https://lore.kernel.org/netdev/68138dfa.050a0220.14dd7d.0017.GAE@xxxxxxxxxx/ > Fixes: 4754957f04f5 ("ipvs: do not use random local source address for tunnels") > Signed-off-by: Julian Anastasov <ja@xxxxxx> Acked-by: Simon Horman <horms@xxxxxxxxxx>