Re: general protection fault in put_pid

From: Dmitry Vyukov
Date: Wed Dec 12 2018 - 05:56:13 EST


On Tue, Dec 11, 2018 at 9:23 PM syzbot
<syzbot+1145ec2e23165570c3ac@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Hello,
>
> syzbot found the following crash on:
>
> HEAD commit: f5d582777bcb Merge branch 'for-linus' of git://git.kernel...
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=135bc547400000
> kernel config: https://syzkaller.appspot.com/x/.config?x=c8970c89a0efbb23
> dashboard link: https://syzkaller.appspot.com/bug?extid=1145ec2e23165570c3ac
> compiler: gcc (GCC) 8.0.1 20180413 (experimental)
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=16803afb400000

+Manfred, this looks similar to the other few crashes related to
semget$private(0x0, 0x4000, 0x3f) that you looked at.

> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> Reported-by: syzbot+1145ec2e23165570c3ac@xxxxxxxxxxxxxxxxxxxxxxxxx
>
> kmem_cache 221KB 225KB
> Out of memory: Kill process 6139 (syz-execprog) score 1 or sacrifice child
> Killed process 6164 (syz-executor0) total-vm:37444kB, anon-rss:60kB,
> file-rss:0kB, shmem-rss:0kB
> oom_reaper: reaped process 6164 (syz-executor0), now anon-rss:0kB,
> file-rss:0kB, shmem-rss:0kB
> kasan: GPF could be caused by NULL-ptr deref or user memory access
> general protection fault: 0000 [#1] PREEMPT SMP KASAN
> CPU: 0 PID: 6159 Comm: syz-executor3 Not tainted 4.20.0-rc6+ #151
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> RIP: 0010:put_pid.part.3+0xb6/0x240 kernel/pid.c:108
> Code: d2 0f 85 89 01 00 00 44 8b 63 04 49 8d 44 24 03 48 c1 e0 04 48 8d 7c
> 03 10 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f
> 85 66 01 00 00 49 83 c4 03 be 04 00 00 00 48 89 df
> RSP: 0018:ffff8881ae116e78 EFLAGS: 00010202
> RAX: dffffc0000000000 RBX: ffffffff816149a0 RCX: ffffffff833e420e
> RDX: 00000001933eab7c RSI: ffffffff8152bf8e RDI: 0000000c99f55be0
> RBP: ffff8881ae116f08 R08: ffff8881cdbf2300 R09: fffff52001507600
> R10: fffff52001507600 R11: ffffc9000a83b003 R12: 00000000d1894120
> R13: 1ffff11035c22dd0 R14: ffff8881ae116ee0 R15: dffffc0000000000
> FS: 000000000166d940(0000) GS:ffff8881dae00000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 000000000075c458 CR3: 00000001d2bd1000 CR4: 00000000001406f0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> Call Trace:
> put_pid+0x1f/0x30 kernel/pid.c:105
> ipc_update_pid ipc/util.h:159 [inline]
> freeary+0x10c8/0x1a40 ipc/sem.c:1167
> free_ipcs+0x9f/0x1c0 ipc/namespace.c:112
> sem_exit_ns+0x20/0x40 ipc/sem.c:237
> free_ipc_ns ipc/namespace.c:120 [inline]
> put_ipc_ns+0x66/0x180 ipc/namespace.c:152
> free_nsproxy+0xcf/0x220 kernel/nsproxy.c:180
> switch_task_namespaces+0xb3/0xd0 kernel/nsproxy.c:229
> exit_task_namespaces+0x17/0x20 kernel/nsproxy.c:234
> do_exit+0x1ad1/0x26d0 kernel/exit.c:866
> do_group_exit+0x177/0x440 kernel/exit.c:970
> get_signal+0x8b0/0x1980 kernel/signal.c:2517
> do_signal+0x9c/0x21c0 arch/x86/kernel/signal.c:816
> exit_to_usermode_loop+0x2e5/0x380 arch/x86/entry/common.c:162
> prepare_exit_to_usermode+0x342/0x3b0 arch/x86/entry/common.c:197
> retint_user+0x8/0x18
> RIP: 0033:0x45a4d0
> Code: 10 44 00 00 00 e8 c0 cc ff ff 0f b6 44 24 18 eb c2 e8 44 ad ff ff e9
> 6f ff ff ff cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc <64> 48 8b 0c 25
> f8 ff ff ff 48 3b 61 10 76 68 48 83 ec 28 48 89 6c
> RSP: 002b:00007fff9b9d3578 EFLAGS: 00010246
> RAX: 0000000000000000 RBX: 00000000000a4edb RCX: 0000000000483170
> RDX: 0000000000000000 RSI: 00007fff9b9d3580 RDI: 0000000000000001
> RBP: 00000000000002ef R08: 0000000000000001 R09: 000000000166d940
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000003
> R13: 00000000000a4e70 R14: 00000000000001f1 R15: 0000000000000003
> Modules linked in:
> ---[ end trace 9933854824df8420 ]---
> RIP: 0010:put_pid.part.3+0xb6/0x240 kernel/pid.c:108
> Code: d2 0f 85 89 01 00 00 44 8b 63 04 49 8d 44 24 03 48 c1 e0 04 48 8d 7c
> 03 10 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f
> 85 66 01 00 00 49 83 c4 03 be 04 00 00 00 48 89 df
> RSP: 0018:ffff8881ae116e78 EFLAGS: 00010202
> RAX: dffffc0000000000 RBX: ffffffff816149a0 RCX: ffffffff833e420e
> RDX: 00000001933eab7c RSI: ffffffff8152bf8e RDI: 0000000c99f55be0
> RBP: ffff8881ae116f08 R08: ffff8881cdbf2300 R09: fffff52001507600
> R10: fffff52001507600 R11: ffffc9000a83b003 R12: 00000000d1894120
> R13: 1ffff11035c22dd0 R14: ffff8881ae116ee0 R15: dffffc0000000000
> FS: 000000000166d940(0000) GS:ffff8881dae00000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 000000000075c458 CR3: 00000001d2bd1000 CR4: 00000000001406f0
> 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 syzkaller@xxxxxxxxxxxxxxxxx
>
> syzbot will keep track of this bug report. See:
> https://goo.gl/tpsmEJ#bug-status-tracking for how to communicate with
> syzbot.
> syzbot can test patches for this bug, for details see:
> https://goo.gl/tpsmEJ#testing-patches
>
> --
> 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-bugs+unsubscribe@xxxxxxxxxxxxxxxxx
> To view this discussion on the web visit https://groups.google.com/d/msgid/syzkaller-bugs/00000000000051ee78057cc4d98f%40google.com.
> For more options, visit https://groups.google.com/d/optout.