2021-08-21 15:21:48

by syzbot

[permalink] [raw]
Subject: [syzbot] BUG: unable to handle kernel NULL pointer dereference in unix_shutdown

Hello,

syzbot found the following issue on:

HEAD commit: 9803fb968c8c Add linux-next specific files for 20210817
git tree: linux-next
console output: https://syzkaller.appspot.com/x/log.txt?x=1727c65e300000
kernel config: https://syzkaller.appspot.com/x/.config?x=681282daead30d81
dashboard link: https://syzkaller.appspot.com/bug?extid=cd7ceee0d3b5892f07af
compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.1
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=13fb6ff9300000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=15272861300000

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: [email protected]

BUG: kernel NULL pointer dereference, address: 0000000000000000
#PF: supervisor instruction fetch in kernel mode
#PF: error_code(0x0010) - not-present page
PGD 6f812067 P4D 6f812067 PUD 6fe2f067 PMD 0
Oops: 0010 [#1] PREEMPT SMP KASAN
CPU: 1 PID: 6569 Comm: syz-executor133 Not tainted 5.14.0-rc6-next-20210817-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:0x0
Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6.
RSP: 0018:ffffc90002dcfe38 EFLAGS: 00010246
RAX: dffffc0000000000 RBX: ffffffff8d27cfa0 RCX: 0000000000000000
RDX: 1ffffffff1a4fa0a RSI: ffffffff87d03085 RDI: ffff888077074d80
RBP: ffff888077074d80 R08: 0000000000000000 R09: 0000000000000001
R10: ffffffff87d03004 R11: 0000000000000001 R12: 0000000000000001
R13: ffff888077075398 R14: ffff888077075b58 R15: ffff888077074e00
FS: 0000000001747300(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffffffffffffd6 CR3: 000000006f93f000 CR4: 00000000001506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
unix_shutdown+0x28a/0x5b0 net/unix/af_unix.c:2857
__sys_shutdown_sock net/socket.c:2242 [inline]
__sys_shutdown_sock net/socket.c:2236 [inline]
__sys_shutdown+0xf1/0x1b0 net/socket.c:2254
__do_sys_shutdown net/socket.c:2262 [inline]
__se_sys_shutdown net/socket.c:2260 [inline]
__x64_sys_shutdown+0x50/0x70 net/socket.c:2260
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x43ee29
Code: 28 c3 e8 2a 14 00 00 66 2e 0f 1f 84 00 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 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffdc0b3c908 EFLAGS: 00000246 ORIG_RAX: 0000000000000030
RAX: ffffffffffffffda RBX: 0000000000400488 RCX: 000000000043ee29
RDX: 00000000004ac018 RSI: 0000000000000000 RDI: 0000000000000003
RBP: 0000000000402e10 R08: 0000000000000000 R09: 0000000000400488
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000402ea0
R13: 0000000000000000 R14: 00000000004ac018 R15: 0000000000400488
Modules linked in:
CR2: 0000000000000000
---[ end trace f541a02ac6ed69b5 ]---
RIP: 0010:0x0
Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6.
RSP: 0018:ffffc90002dcfe38 EFLAGS: 00010246
RAX: dffffc0000000000 RBX: ffffffff8d27cfa0 RCX: 0000000000000000
RDX: 1ffffffff1a4fa0a RSI: ffffffff87d03085 RDI: ffff888077074d80
RBP: ffff888077074d80 R08: 0000000000000000 R09: 0000000000000001
R10: ffffffff87d03004 R11: 0000000000000001 R12: 0000000000000001
R13: ffff888077075398 R14: ffff888077075b58 R15: ffff888077074e00
FS: 0000000001747300(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffffffffffffd6 CR3: 000000006f93f000 CR4: 00000000001506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
0: 28 c3 sub %al,%bl
2: e8 2a 14 00 00 callq 0x1431
7: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
e: 00 00 00
11: 48 89 f8 mov %rdi,%rax
14: 48 89 f7 mov %rsi,%rdi
17: 48 89 d6 mov %rdx,%rsi
1a: 48 89 ca mov %rcx,%rdx
1d: 4d 89 c2 mov %r8,%r10
20: 4d 89 c8 mov %r9,%r8
23: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9
28: 0f 05 syscall
2a: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax <-- trapping instruction
30: 73 01 jae 0x33
32: c3 retq
33: 48 c7 c1 c0 ff ff ff mov $0xffffffffffffffc0,%rcx
3a: f7 d8 neg %eax
3c: 64 89 01 mov %eax,%fs:(%rcx)
3f: 48 rex.W


---
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 [email protected].

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
syzbot can test patches for this issue, for details see:
https://goo.gl/tpsmEJ#testing-patches


2021-08-21 20:10:16

by Shoaib Rao

[permalink] [raw]
Subject: Re: [syzbot] BUG: unable to handle kernel NULL pointer dereference in unix_shutdown

Resending as plain text

On 8/21/21 11:43 AM, Shoaib Rao wrote:
>
> I just tested my changes using the C reproducer and do not see the
> issue. [email protected] had contacted me earlier in the week about
> a similar panic and I tested shutdown and could not reproduce the
> panic, Andy tracked it down to
>
> https://lore.kernel.org/patchwork/patch/1479867/
> <https://urldefense.com/v3/__https://lore.kernel.org/patchwork/patch/1479867/__;!!ACWV5N9M2RV99hQ!dCQkqhyYNMmbH4T4zQ7Ko0sVqSmut7DBj-QmuLRiHuH4xiBwxXc5cbtLaZgKdYGH$>
>
> If that is not the culprit please let me know.
>
> Shoaib
>
>
> On 8/21/21 8:19 AM, syzbot wrote:
>> Hello,
>>
>> syzbot found the following issue on:
>>
>> HEAD commit: 9803fb968c8c Add linux-next specific files for 20210817
>> git tree: linux-next
>> console output:https://syzkaller.appspot.com/x/log.txt?x=1727c65e300000
>> kernel config:https://syzkaller.appspot.com/x/.config?x=681282daead30d81
>> dashboard link:https://syzkaller.appspot.com/bug?extid=cd7ceee0d3b5892f07af
>> compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.1
>> syz repro:https://syzkaller.appspot.com/x/repro.syz?x=13fb6ff9300000
>> C reproducer:https://syzkaller.appspot.com/x/repro.c?x=15272861300000
>>
>> IMPORTANT: if you fix the issue, please add the following tag to the commit:
>> Reported-by:[email protected]
>>
>> BUG: kernel NULL pointer dereference, address: 0000000000000000
>> #PF: supervisor instruction fetch in kernel mode
>> #PF: error_code(0x0010) - not-present page
>> PGD 6f812067 P4D 6f812067 PUD 6fe2f067 PMD 0
>> Oops: 0010 [#1] PREEMPT SMP KASAN
>> CPU: 1 PID: 6569 Comm: syz-executor133 Not tainted 5.14.0-rc6-next-20210817-syzkaller #0
>> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
>> RIP: 0010:0x0
>> Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6.
>> RSP: 0018:ffffc90002dcfe38 EFLAGS: 00010246
>> RAX: dffffc0000000000 RBX: ffffffff8d27cfa0 RCX: 0000000000000000
>> RDX: 1ffffffff1a4fa0a RSI: ffffffff87d03085 RDI: ffff888077074d80
>> RBP: ffff888077074d80 R08: 0000000000000000 R09: 0000000000000001
>> R10: ffffffff87d03004 R11: 0000000000000001 R12: 0000000000000001
>> R13: ffff888077075398 R14: ffff888077075b58 R15: ffff888077074e00
>> FS: 0000000001747300(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
>> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>> CR2: ffffffffffffffd6 CR3: 000000006f93f000 CR4: 00000000001506e0
>> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
>> Call Trace:
>> unix_shutdown+0x28a/0x5b0 net/unix/af_unix.c:2857
>> __sys_shutdown_sock net/socket.c:2242 [inline]
>> __sys_shutdown_sock net/socket.c:2236 [inline]
>> __sys_shutdown+0xf1/0x1b0 net/socket.c:2254
>> __do_sys_shutdown net/socket.c:2262 [inline]
>> __se_sys_shutdown net/socket.c:2260 [inline]
>> __x64_sys_shutdown+0x50/0x70 net/socket.c:2260
>> do_syscall_x64 arch/x86/entry/common.c:50 [inline]
>> do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
>> entry_SYSCALL_64_after_hwframe+0x44/0xae
>> RIP: 0033:0x43ee29
>> Code: 28 c3 e8 2a 14 00 00 66 2e 0f 1f 84 00 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 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48
>> RSP: 002b:00007ffdc0b3c908 EFLAGS: 00000246 ORIG_RAX: 0000000000000030
>> RAX: ffffffffffffffda RBX: 0000000000400488 RCX: 000000000043ee29
>> RDX: 00000000004ac018 RSI: 0000000000000000 RDI: 0000000000000003
>> RBP: 0000000000402e10 R08: 0000000000000000 R09: 0000000000400488
>> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000402ea0
>> R13: 0000000000000000 R14: 00000000004ac018 R15: 0000000000400488
>> Modules linked in:
>> CR2: 0000000000000000
>> ---[ end trace f541a02ac6ed69b5 ]---
>> RIP: 0010:0x0
>> Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6.
>> RSP: 0018:ffffc90002dcfe38 EFLAGS: 00010246
>> RAX: dffffc0000000000 RBX: ffffffff8d27cfa0 RCX: 0000000000000000
>> RDX: 1ffffffff1a4fa0a RSI: ffffffff87d03085 RDI: ffff888077074d80
>> RBP: ffff888077074d80 R08: 0000000000000000 R09: 0000000000000001
>> R10: ffffffff87d03004 R11: 0000000000000001 R12: 0000000000000001
>> R13: ffff888077075398 R14: ffff888077075b58 R15: ffff888077074e00
>> FS: 0000000001747300(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
>> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>> CR2: ffffffffffffffd6 CR3: 000000006f93f000 CR4: 00000000001506e0
>> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
>> ----------------
>> Code disassembly (best guess):
>> 0: 28 c3 sub %al,%bl
>> 2: e8 2a 14 00 00 callq 0x1431
>> 7: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
>> e: 00 00 00
>> 11: 48 89 f8 mov %rdi,%rax
>> 14: 48 89 f7 mov %rsi,%rdi
>> 17: 48 89 d6 mov %rdx,%rsi
>> 1a: 48 89 ca mov %rcx,%rdx
>> 1d: 4d 89 c2 mov %r8,%r10
>> 20: 4d 89 c8 mov %r9,%r8
>> 23: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9
>> 28: 0f 05 syscall
>> 2a: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax <-- trapping instruction
>> 30: 73 01 jae 0x33
>> 32: c3 retq
>> 33: 48 c7 c1 c0 ff ff ff mov $0xffffffffffffffc0,%rcx
>> 3a: f7 d8 neg %eax
>> 3c: 64 89 01 mov %eax,%fs:(%rcx)
>> 3f: 48 rex.W
>>
>>
>> ---
>> This report is generated by a bot. It may contain errors.
>> Seehttps://goo.gl/tpsmEJ for more information about syzbot.
>> syzbot engineers can be reached [email protected].
>>
>> syzbot will keep track of this issue. See:
>> https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
>> syzbot can test patches for this issue, for details see:
>> https://goo.gl/tpsmEJ#testing-patches

2022-01-24 19:15:56

by Vegard Nossum

[permalink] [raw]
Subject: Re: [syzbot] BUG: unable to handle kernel NULL pointer dereference in unix_shutdown

On Sat, 21 Aug 2021 at 17:19, syzbot
<[email protected]> wrote:
>
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: 9803fb968c8c Add linux-next specific files for 20210817
> git tree: linux-next
> console output: https://syzkaller.appspot.com/x/log.txt?x=1727c65e300000
> kernel config: https://syzkaller.appspot.com/x/.config?x=681282daead30d81
> dashboard link: https://syzkaller.appspot.com/bug?extid=cd7ceee0d3b5892f07af
> compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.1
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=13fb6ff9300000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=15272861300000
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: [email protected]
>
> BUG: kernel NULL pointer dereference, address: 0000000000000000

Looks like this was only ever hit in linux-next and fixed before it
got to mainline? Anyway, I can confirm the following patch fixes the
issue:

#syz fix: af_unix: Fix NULL pointer bug in unix_shutdown


Vegard