Re: invalid opcode in map_vdso

From: Dmitry Vyukov
Date: Wed Sep 23 2020 - 05:19:54 EST


On Wed, Sep 23, 2020 at 11:18 AM syzbot
<syzbot+9cf5373b0e15476f39a2@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=1553eff1900000
> kernel config: https://syzkaller.appspot.com/x/.config?x=cd992d74d6c7e62
> dashboard link: https://syzkaller.appspot.com/bug?extid=9cf5373b0e15476f39a2
> 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+9cf5373b0e15476f39a2@xxxxxxxxxxxxxxxxxxxxxxxxx
>
> invalid opcode: 0000 [#1] PREEMPT SMP KASAN
> CPU: 0 PID: 16405 Comm: modprobe 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+0x1e3/0x270 arch/x86/entry/vdso/vma.c:308
> Code: 16 48 89 ef 48 8b 34 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 77 70 70 <07> 20 05 00 00 49 03 6d 00 48 89 e8 48 c1 e8 03 42 80 3c 38 00 74
> RSP: 0018:ffffc90006167b98 EFLAGS: 00010246
> RAX: ffff8880a7db8420 RBX: ffff88809d5fd7f8 RCX: ffff8880a811a040
> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
> RBP: ffff88809d5fd740 R08: ffffffff81912471 R09: fffffbfff131e57c
> R10: fffffbfff131e57c R11: 0000000000000000 R12: 00007ffea1107000
> R13: ffff8880a811a468 R14: 1ffff1101502348d R15: dffffc0000000000
> FS: 0000000000000000(0000) GS:ffff8880ae800000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00007f33d09f8fc0 CR3: 0000000097210000 CR4: 00000000001506f0
> 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
> kernel_execve+0x871/0x970 fs/exec.c:2080
> call_usermodehelper_exec_async+0x204/0x330 kernel/umh.c:101
> ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294
> Modules linked in:
> ---[ end trace 8d12c4aa58699b40 ]---
> RIP: 0010:map_vdso+0x1e3/0x270 arch/x86/entry/vdso/vma.c:308
> Code: 16 48 89 ef 48 8b 34 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 77 70 70 <07> 20 05 00 00 49 03 6d 00 48 89 e8 48 c1 e8 03 42 80 3c 38 00 74
> RSP: 0018:ffffc90006167b98 EFLAGS: 00010246
> RAX: ffff8880a7db8420 RBX: ffff88809d5fd7f8 RCX: ffff8880a811a040
> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
> RBP: ffff88809d5fd740 R08: ffffffff81912471 R09: fffffbfff131e57c
> R10: fffffbfff131e57c R11: 0000000000000000 R12: 00007ffea1107000
> R13: ffff8880a811a468 R14: 1ffff1101502348d R15: dffffc0000000000
> FS: 0000000000000000(0000) GS:ffff8880ae800000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00007f33d09f8fc0 CR3: 0000000097210000 CR4: 00000000001506f0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400

+clang-built-linux
Looks like another one with kernel code overwrite in clang build.