Re: BUG: unable to handle kernel NULL pointer dereference in map_vdso

From: Dmitry Vyukov
Date: Fri Sep 25 2020 - 08:16:54 EST


On Mon, Sep 21, 2020 at 12:35 PM Dmitry Vyukov <dvyukov@xxxxxxxxxx> wrote:
>
> On Mon, Sep 21, 2020 at 12:34 PM syzbot
> <syzbot+9d25c706da4558b9f11a@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > Hello,
> >
> > syzbot found the following issue on:
> >
> > HEAD commit: 92ab97ad Merge tag 'sh-for-5.9-part2' of git://git.libc.or..
> > git tree: upstream
> > console output: https://syzkaller.appspot.com/x/log.txt?x=162d70d3900000
> > kernel config: https://syzkaller.appspot.com/x/.config?x=cd992d74d6c7e62
> > dashboard link: https://syzkaller.appspot.com/bug?extid=9d25c706da4558b9f11a
> > compiler: clang version 10.0.0 (https://github.com/llvm/llvm-project/ c2443155a0fb245c8f17f2c1c72b6ea391e86e81)
> >
> > Unfortunately, I don't have any reproducer for this issue yet.
> >
> > IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > Reported-by: syzbot+9d25c706da4558b9f11a@xxxxxxxxxxxxxxxxxxxxxxxxx
> >
> > BUG: kernel NULL pointer dereference, address: 0000000000000000
> > #PF: supervisor write access in kernel mode
> > #PF: error_code(0x0002) - not-present page
> > PGD 0 P4D 0
> > Oops: 0002 [#1] PREEMPT SMP KASAN
> > CPU: 0 PID: 5029 Comm: systemd-rfkill Not tainted 5.9.0-rc5-syzkaller #0
> > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
> > RIP: 0010:map_vdso+0x1ea/0x270 arch/x86/entry/vdso/vma.c:308
> > Code: 24 31 c9 e8 88 7c a7 00 eb 7a 4c 8b 74 24 28 43 80 3c 3e 00 48 8b 5c 24 08 74 08 4c 89 ef e8 4d 00 00 00 00 20 05 00 00 49 03 <6d> 00 48 89 e8 48 c1 e8 03 42 80 3c 38 00 74 08 48 89 ef e8 ae 64
> > RSP: 0018:ffffc90016bafb98 EFLAGS: 00010282
> > RAX: 00000000ab3c6738 RBX: ffff888056ebc538 RCX: ffff888093622440
> > RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
> > RBP: ffff888056ebc480 R08: ffffffff81912471 R09: fffffbfff131e57c
> > R10: fffffbfff131e57c R11: 0000000000000000 R12: 00007fffda9dc000
> > R13: ffff888093622868 R14: 1ffff110126c450d R15: dffffc0000000000
> > FS: 0000000000000000(0000) GS:ffff8880ae800000(0000) knlGS:0000000000000000
> > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 0000000000000000 CR3: 000000008fac6000 CR4: 00000000001526f0
> > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> > Call Trace:
> > load_elf_binary+0x2e90/0x48a0 fs/binfmt_elf.c:1221
> > search_binary_handler fs/exec.c:1819 [inline]
> > exec_binprm fs/exec.c:1860 [inline]
> > bprm_execve+0x919/0x1500 fs/exec.c:1931
> > do_execveat_common+0x487/0x5f0 fs/exec.c:2026
> > do_execve fs/exec.c:2094 [inline]
> > __do_sys_execve fs/exec.c:2170 [inline]
> > __se_sys_execve fs/exec.c:2165 [inline]
> > __x64_sys_execve+0x8e/0xa0 fs/exec.c:2165
> > do_syscall_64+0x31/0x70 arch/x86/entry/common.c:46
> > entry_SYSCALL_64_after_hwframe+0x44/0xa9
> > RIP: 0033:0x7f8127340647
> > Code: Bad RIP value.
> > RSP: 002b:00007ffc7b57dbf8 EFLAGS: 00000246 ORIG_RAX: 000000000000003b
> > RAX: ffffffffffffffda RBX: 000055a0c9286d40 RCX: 00007f8127340647
> > RDX: 000055a0c9307440 RSI: 000055a0c91cd210 RDI: 000055a0c924e9a0
> > RBP: 00007ffc7b57dd60 R08: 000000000000fe00 R09: 0000000000000030
> > R10: 000055a0c9239740 R11: 0000000000000246 R12: 000055a0c91e1228
> > R13: 0000000000000000 R14: 000055a0c91cd210 R15: 00007ffc7b57de40
> > Modules linked in:
> > CR2: 0000000000000000
> >
> >
> > ---
> > This report 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 syzkaller@xxxxxxxxxxxxxxxx.
> >
> > syzbot will keep track of this issue. See:
> > https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
>
> Another clang-only crash that may be related to these ones:
>
> https://syzkaller.appspot.com/bug?extid=ce179bc99e64377c24bc
> https://syzkaller.appspot.com/bug?extid=1dccfcb049726389379c

There is strong indication that this is a manifestation of the same
problem we see in other crashes.
Let's make one canonical bug for this:

#syz dup: general protection fault in perf_misc_flags