general protection fault in sock_recvmsg

13 Aufrufe
Direkt zur ersten ungelesenen Nachricht

syzbot

ungelesen,
24.05.2020, 23:14:1624.05.20
an da...@davemloft.net, edum...@google.com, ku...@kernel.org, kuz...@ms2.inr.ac.ru, linux-...@vger.kernel.org, mathew.j....@linux.intel.com, matthie...@tessares.net, mp...@lists.01.org, net...@vger.kernel.org, pab...@redhat.com, syzkall...@googlegroups.com, yosh...@linux-ipv6.org
Hello,

syzbot found the following crash on:

HEAD commit: caffb99b Merge git://git.kernel.org/pub/scm/linux/kernel/g..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=15a74441100000
kernel config: https://syzkaller.appspot.com/x/.config?x=c33c7f7c5471fd39
dashboard link: https://syzkaller.appspot.com/bug?extid=d7cface3f90b13edf5b0
compiler: clang version 10.0.0 (https://github.com/llvm/llvm-project/ c2443155a0fb245c8f17f2c1c72b6ea391e86e81)
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=141034ba100000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=119cd016100000

The bug was bisected to:

commit 263e1201a2c324b60b15ecda5de9ebf1e7293e31
Author: Paolo Abeni <pab...@redhat.com>
Date: Thu Apr 30 13:01:51 2020 +0000

mptcp: consolidate synack processing.

bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=119d8626100000
final crash: https://syzkaller.appspot.com/x/report.txt?x=139d8626100000
console output: https://syzkaller.appspot.com/x/log.txt?x=159d8626100000

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+d7cfac...@syzkaller.appspotmail.com
Fixes: 263e1201a2c3 ("mptcp: consolidate synack processing.")

general protection fault, probably for non-canonical address 0xdffffc0000000004: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000020-0x0000000000000027]
CPU: 1 PID: 7226 Comm: syz-executor523 Not tainted 5.7.0-rc6-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:sock_recvmsg_nosec net/socket.c:886 [inline]
RIP: 0010:sock_recvmsg+0x92/0x110 net/socket.c:904
Code: 5b 41 5c 41 5d 41 5e 41 5f 5d c3 44 89 6c 24 04 e8 53 18 1d fb 4d 8d 6f 20 4c 89 e8 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <80> 3c 08 00 74 08 4c 89 ef e8 20 12 5b fb bd a0 00 00 00 49 03 6d
RSP: 0018:ffffc90001077b98 EFLAGS: 00010202
RAX: 0000000000000004 RBX: ffffc90001077dc0 RCX: dffffc0000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000000 R08: ffffffff86565e59 R09: ffffed10115afeaa
R10: ffffed10115afeaa R11: 0000000000000000 R12: 1ffff9200020efbc
R13: 0000000000000020 R14: ffffc90001077de0 R15: 0000000000000000
FS: 00007fc6a3abe700(0000) GS:ffff8880ae900000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000000004d0050 CR3: 00000000969f0000 CR4: 00000000001406e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
mptcp_recvmsg+0x18d5/0x19b0 net/mptcp/protocol.c:891
inet_recvmsg+0xf6/0x1d0 net/ipv4/af_inet.c:838
sock_recvmsg_nosec net/socket.c:886 [inline]
sock_recvmsg net/socket.c:904 [inline]
__sys_recvfrom+0x2f3/0x470 net/socket.c:2057
__do_sys_recvfrom net/socket.c:2075 [inline]
__se_sys_recvfrom net/socket.c:2071 [inline]
__x64_sys_recvfrom+0xda/0xf0 net/socket.c:2071
do_syscall_64+0xf3/0x1b0 arch/x86/entry/common.c:295
entry_SYSCALL_64_after_hwframe+0x49/0xb3
RIP: 0033:0x448ef9
Code: e8 cc 14 03 00 48 83 c4 18 c3 0f 1f 80 00 00 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 0f 83 9b 0c fc ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007fc6a3abdda8 EFLAGS: 00000246 ORIG_RAX: 000000000000002d
RAX: ffffffffffffffda RBX: 00000000006dec28 RCX: 0000000000448ef9
RDX: 0000000000001000 RSI: 00000000200004c0 RDI: 0000000000000003
RBP: 00000000006dec20 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000040000000 R11: 0000000000000246 R12: 00000000006dec2c
R13: 00007ffe4730174f R14: 00007fc6a3abe9c0 R15: 00000000006dec2c
Modules linked in:
---[ end trace 097bdf143c3a60db ]---
RIP: 0010:sock_recvmsg_nosec net/socket.c:886 [inline]
RIP: 0010:sock_recvmsg+0x92/0x110 net/socket.c:904
Code: 5b 41 5c 41 5d 41 5e 41 5f 5d c3 44 89 6c 24 04 e8 53 18 1d fb 4d 8d 6f 20 4c 89 e8 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <80> 3c 08 00 74 08 4c 89 ef e8 20 12 5b fb bd a0 00 00 00 49 03 6d
RSP: 0018:ffffc90001077b98 EFLAGS: 00010202
RAX: 0000000000000004 RBX: ffffc90001077dc0 RCX: dffffc0000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000000 R08: ffffffff86565e59 R09: ffffed10115afeaa
R10: ffffed10115afeaa R11: 0000000000000000 R12: 1ffff9200020efbc
R13: 0000000000000020 R14: ffffc90001077de0 R15: 0000000000000000
FS: 00007fc6a3abe700(0000) GS:ffff8880ae900000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000000004d0050 CR3: 00000000969f0000 CR4: 00000000001406e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400


---
This bug is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
For information about bisection process see: https://goo.gl/tpsmEJ#bisection
syzbot can test patches for this bug, for details see:
https://goo.gl/tpsmEJ#testing-patches

Paolo Abeni

ungelesen,
25.05.2020, 05:07:3725.05.20
an syzbot, mp...@lists.01.org, syzkall...@googlegroups.com
#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git master

I don't easily see how we can reach sock_recvmsg() without first
splatting on selinux_socket_recvmsg(), anyhow this really looks like a
duplicate of syzbot+c6bfc3...@syzkaller.appspotmail.com.

Just be pedantic and check the same fix for both.

---
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 1f52a0fa31ed..69b66423305b 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -954,7 +954,8 @@ static int mptcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,

pr_debug("block timeout %ld", timeo);
mptcp_wait_data(sk, &timeo);
- if (unlikely(__mptcp_tcp_fallback(msk)))
+ ssock = __mptcp_tcp_fallback(msk);
+ if (unlikely(ssock))
goto fallback;
}


Dmitry Vyukov

ungelesen,
25.05.2020, 05:36:2025.05.20
an Paolo Abeni, syzbot, mp...@lists.01.org, syzkaller-bugs
On Mon, May 25, 2020 at 11:07 AM Paolo Abeni <pab...@redhat.com> wrote:
>
> #syz test: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git master
>
> I don't easily see how we can reach sock_recvmsg() without first
> splatting on selinux_socket_recvmsg()

This instance uses smack.

>, anyhow this really looks like a
> duplicate of syzbot+c6bfc3...@syzkaller.appspotmail.com.
>
> Just be pedantic and check the same fix for both.
>
> ---
> diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
> index 1f52a0fa31ed..69b66423305b 100644
> --- a/net/mptcp/protocol.c
> +++ b/net/mptcp/protocol.c
> @@ -954,7 +954,8 @@ static int mptcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
>
> pr_debug("block timeout %ld", timeo);
> mptcp_wait_data(sk, &timeo);
> - if (unlikely(__mptcp_tcp_fallback(msk)))
> + ssock = __mptcp_tcp_fallback(msk);
> + if (unlikely(ssock))
> goto fallback;
> }
>
>
> --
> You received this message because you are subscribed to the Google Groups "syzkaller-bugs" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller-bug...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/syzkaller-bugs/f82cedb30d32f24f962360f96d7bef633792a401.camel%40redhat.com.

Paolo Abeni

ungelesen,
25.05.2020, 06:02:3825.05.20
an Dmitry Vyukov, syzbot, mp...@lists.01.org, syzkaller-bugs
On Mon, 2020-05-25 at 11:36 +0200, Dmitry Vyukov wrote:
> On Mon, May 25, 2020 at 11:07 AM Paolo Abeni <pab...@redhat.com> wrote:
> > #syz test: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git master
> >
> > I don't easily see how we can reach sock_recvmsg() without first
> > splatting on selinux_socket_recvmsg()
>
> This instance uses smack.

Thank you for the prompt reply! Is that configuration somehow visible
in the syzbot report? if so, where/how? (the only differences I see in
.config are related to the used compiler).

Thanks!

Paolo

Dmitry Vyukov

ungelesen,
25.05.2020, 06:13:5625.05.20
an Paolo Abeni, syzbot, mp...@lists.01.org, syzkaller-bugs
Hi Paolo,

It's visible, but some implicitly and not officially.
On the dashboard you may see the Manager column:
https://syzkaller.appspot.com/bug?extid=d7cface3f90b13edf5b0
for this crash it says "ci-upstream-kasan-gce-smack-root".
For other bugs you may also see "ci-upstream-kasan-gce-selinux-root".
But for some there is not lsm in the name, that's generally apparmour.
These instances use these command line presents:
https://github.com/google/syzkaller/blob/master/dashboard/config/upstream-selinux.cmdline
https://github.com/google/syzkaller/blob/master/dashboard/config/upstream-smack.cmdline
https://github.com/google/syzkaller/blob/master/dashboard/config/upstream-apparmor.cmdline

syzbot

ungelesen,
25.05.2020, 06:54:0425.05.20
an mp...@lists.01.org, pab...@redhat.com, syzkall...@googlegroups.com
Hello,

syzbot has tested the proposed patch and the reproducer did not trigger crash:

Reported-and-tested-by: syzbot+d7cfac...@syzkaller.appspotmail.com

Tested on:

commit: 98790bba Merge tag 'efi-urgent-2020-05-24' of git://git.ke..
git tree: net
kernel config: https://syzkaller.appspot.com/x/.config?x=c33c7f7c5471fd39
dashboard link: https://syzkaller.appspot.com/bug?extid=d7cface3f90b13edf5b0
compiler: clang version 10.0.0 (https://github.com/llvm/llvm-project/ c2443155a0fb245c8f17f2c1c72b6ea391e86e81)
patch: https://syzkaller.appspot.com/x/patch.diff?x=14fe6016100000

Note: testing is done by a robot and is best-effort only.

Paolo Abeni

ungelesen,
25.05.2020, 07:14:2225.05.20
an syzbot, da...@davemloft.net, edum...@google.com, ku...@kernel.org, kuz...@ms2.inr.ac.ru, linux-...@vger.kernel.org, mathew.j....@linux.intel.com, matthie...@tessares.net, mp...@lists.01.org, net...@vger.kernel.org, syzkall...@googlegroups.com, yosh...@linux-ipv6.org
#syz dup: general protection fault in selinux_socket_recvmsg



Allen antworten
Antwort an Autor
Weiterleiten
0 neue Nachrichten