From: Paolo Abeni <pabeni@redhat.com>
To: Menglong Dong <menglong8.dong@gmail.com>
Cc: davem@davemloft.net, dsahern@kernel.org, edumazet@google.com,
kuba@kernel.org, horms@kernel.org, ast@kernel.org,
daniel@iogearbox.net, hawk@kernel.org, john.fastabend@gmail.com,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
bpf@vger.kernel.org, Menglong Dong <dongml2@chinatelecom.cn>,
syzbot+52fbd90f020788ec7709@syzkaller.appspotmail.com
Subject: Re: [PATCH net-next] net: ip: fix unexpected return in fib_validate_source()
Date: Mon, 18 Nov 2024 12:38:28 +0100 [thread overview]
Message-ID: <f95ec5a6-72c5-4c99-91b9-8317ca5d7207@redhat.com> (raw)
In-Reply-To: <20241118091427.2164345-1-dongml2@chinatelecom.cn>
On 11/18/24 10:14, Menglong Dong wrote:
> The errno should be replaced with drop reasons in fib_validate_source(),
> and the "-EINVAL" shouldn't be returned. And this causes a warning, which
> is reported by syzkaller:
>
> netlink: 'syz-executor371': attribute type 4 has an invalid length.
> ------------[ cut here ]------------
> WARNING: CPU: 0 PID: 5842 at net/core/skbuff.c:1219 __sk_skb_reason_drop net/core/skbuff.c:1216 [inline]
> WARNING: CPU: 0 PID: 5842 at net/core/skbuff.c:1219 sk_skb_reason_drop+0x87/0x380 net/core/skbuff.c:1241
> Modules linked in:
> CPU: 0 UID: 0 PID: 5842 Comm: syz-executor371 Not tainted 6.12.0-rc6-syzkaller-01362-ga58f00ed24b8 #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/30/2024
> RIP: 0010:__sk_skb_reason_drop net/core/skbuff.c:1216 [inline]
> RIP: 0010:sk_skb_reason_drop+0x87/0x380 net/core/skbuff.c:1241
> Code: 00 00 00 fc ff df 41 8d 9e 00 00 fc ff bf 01 00 fc ff 89 de e8 ea 9f 08 f8 81 fb 00 00 fc ff 77 3a 4c 89 e5 e8 9a 9b 08 f8 90 <0f> 0b 90 eb 5e bf 01 00 00 00 89 ee e8 c8 9f 08 f8 85 ed 0f 8e 49
> RSP: 0018:ffffc90003d57078 EFLAGS: 00010293
> RAX: ffffffff898c3ec6 RBX: 00000000fffbffea RCX: ffff8880347a5a00
> RDX: 0000000000000000 RSI: 00000000fffbffea RDI: 00000000fffc0001
> RBP: dffffc0000000000 R08: ffffffff898c3eb6 R09: 1ffff110023eb7d4
> R10: dffffc0000000000 R11: ffffed10023eb7d5 R12: dffffc0000000000
> R13: ffff888011f5bdc0 R14: 00000000ffffffea R15: 0000000000000000
> FS: 000055557d41e380(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 000056519d31d608 CR3: 000000007854e000 CR4: 00000000003526f0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> Call Trace:
> <TASK>
> kfree_skb_reason include/linux/skbuff.h:1263 [inline]
> ip_rcv_finish_core+0xfde/0x1b50 net/ipv4/ip_input.c:424
> ip_list_rcv_finish net/ipv4/ip_input.c:610 [inline]
> ip_sublist_rcv+0x3b1/0xab0 net/ipv4/ip_input.c:636
> ip_list_rcv+0x42b/0x480 net/ipv4/ip_input.c:670
> __netif_receive_skb_list_ptype net/core/dev.c:5715 [inline]
> __netif_receive_skb_list_core+0x94e/0x980 net/core/dev.c:5762
> __netif_receive_skb_list net/core/dev.c:5814 [inline]
> netif_receive_skb_list_internal+0xa51/0xe30 net/core/dev.c:5905
> netif_receive_skb_list+0x55/0x4b0 net/core/dev.c:5957
> xdp_recv_frames net/bpf/test_run.c:280 [inline]
> xdp_test_run_batch net/bpf/test_run.c:361 [inline]
> bpf_test_run_xdp_live+0x1b5e/0x21b0 net/bpf/test_run.c:390
> bpf_prog_test_run_xdp+0x805/0x11e0 net/bpf/test_run.c:1318
> bpf_prog_test_run+0x2e4/0x360 kernel/bpf/syscall.c:4266
> __sys_bpf+0x48d/0x810 kernel/bpf/syscall.c:5671
> __do_sys_bpf kernel/bpf/syscall.c:5760 [inline]
> __se_sys_bpf kernel/bpf/syscall.c:5758 [inline]
> __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:5758
> do_syscall_x64 arch/x86/entry/common.c:52 [inline]
> do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
> entry_SYSCALL_64_after_hwframe+0x77/0x7f
> RIP: 0033:0x7f18af25a8e9
> Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48
> RSP: 002b:00007ffee4090af8 EFLAGS: 00000246 ORIG_RAX: 0000000000000141
> RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f18af25a8e9
> RDX: 0000000000000048 RSI: 0000000020000600 RDI: 000000000000000a
> RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
>
> Fix it by returning "-SKB_DROP_REASON_IP_LOCAL_SOURCE" instead of
> "-EINVAL" in fib_validate_source().
>
> Reported-by: syzbot+52fbd90f020788ec7709@syzkaller.appspotmail.com
> Closes: https://lore.kernel.org/netdev/6738e539.050a0220.e1c64.0002.GAE@google.com/
> Fixes: 82d9983ebeb8 ("net: ip: make ip_route_input_noref() return drop reasons")
> Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
Thanks for the quick turnaround!
Acked-by: Paolo Abeni <pabeni@redhat.com>
next prev parent reply other threads:[~2024-11-18 11:38 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-18 9:14 [PATCH net-next] net: ip: fix unexpected return in fib_validate_source() Menglong Dong
2024-11-18 11:38 ` Paolo Abeni [this message]
2024-11-19 4:00 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f95ec5a6-72c5-4c99-91b9-8317ca5d7207@redhat.com \
--to=pabeni@redhat.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=dongml2@chinatelecom.cn \
--cc=dsahern@kernel.org \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=horms@kernel.org \
--cc=john.fastabend@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=menglong8.dong@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=syzbot+52fbd90f020788ec7709@syzkaller.appspotmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.