All of lore.kernel.org
 help / color / mirror / Atom feed
* kernel BUG at arch/x86/mm/physaddr.c:LINE!
@ 2018-10-10 15:14 syzbot
  2018-10-10 15:22 ` Thomas Gleixner
  0 siblings, 1 reply; 4+ messages in thread
From: syzbot @ 2018-10-10 15:14 UTC (permalink / raw)
  To: bp, dave.hansen, hpa, linux-kernel, luto, mingo, peterz,
	syzkaller-bugs, tglx, x86

Hello,

syzbot found the following crash on:

HEAD commit:    0854ba5ff5c9 Merge git://git.kernel.org/pub/scm/linux/kern..
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=15e64ea1400000
kernel config:  https://syzkaller.appspot.com/x/.config?x=88e9a8a39dc0be2d
dashboard link: https://syzkaller.appspot.com/bug?extid=ff03fe05c717b82502d0
compiler:       gcc (GCC) 8.0.1 20180413 (experimental)
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=10e516a1400000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=11d6e93a400000

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+ff03fe05c717b82502d0@syzkaller.appspotmail.com

RBP: 00007ffc881226c0 R08: 0000000020000100 R09: 0000000000000100
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000003
R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
overlayfs: failed to verify origin (syzkaller.Ry8w8Y/file0, ino=16483,  
err=-12)
------------[ cut here ]------------
kernel BUG at arch/x86/mm/physaddr.c:22!
invalid opcode: 0000 [#1] PREEMPT SMP KASAN
CPU: 0 PID: 5918 Comm: syz-executor189 Not tainted 4.19.0-rc7+ #53
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS  
Google 01/01/2011
RIP: 0010:__phys_addr+0xff/0x120 arch/x86/mm/physaddr.c:22
Code: 3c 02 00 75 31 4c 8b 25 ff c3 ee 07 48 89 de bf ff ff ff 1f e8 a2 7a  
46 00 49 01 dc 48 81 fb ff ff ff 1f 76 a7 e8 61 79 46 00 <0f> 0b e8 6a e9  
89 00 e9 7a ff ff ff e8 c0 e9 89 00 eb c8 0f 1f 40
RSP: 0018:ffff8801c3387770 EFLAGS: 00010093
RAX: ffff8801c323a080 RBX: 000000007ffffff4 RCX: ffffffff81385c1e
RDX: 0000000000000000 RSI: ffffffff81385c2f RDI: 0000000000000007
RBP: ffff8801c3387788 R08: ffff8801c323a080 R09: ffffed003b5c4fe8
R10: ffffed003b5c4fe8 R11: ffff8801dae27f47 R12: 000000007ffffff4
R13: 0000000000000001 R14: ffffffff882f8c80 R15: 0000000000004063
FS:  000000000148d880(0000) GS:ffff8801dae00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000619570 CR3: 00000001c4ab0000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
  virt_to_head_page include/linux/mm.h:658 [inline]
  virt_to_cache mm/slab.c:399 [inline]
  kfree+0x7b/0x230 mm/slab.c:3809
  ovl_verify_set_fh+0xba/0x180 fs/overlayfs/namei.c:435
  ovl_verify_origin fs/overlayfs/overlayfs.h:316 [inline]
  ovl_get_indexdir fs/overlayfs/super.c:1139 [inline]
  ovl_fill_super+0x3026/0x3f7b fs/overlayfs/super.c:1441
  mount_nodev+0x6b/0x110 fs/super.c:1204
  ovl_mount+0x2c/0x40 fs/overlayfs/super.c:1518
  mount_fs+0xae/0x31d fs/super.c:1261
  vfs_kern_mount.part.35+0xdc/0x4f0 fs/namespace.c:961
  vfs_kern_mount fs/namespace.c:951 [inline]
  do_new_mount fs/namespace.c:2457 [inline]
  do_mount+0x581/0x31f0 fs/namespace.c:2787
  ksys_mount+0x12d/0x140 fs/namespace.c:3003
  __do_sys_mount fs/namespace.c:3017 [inline]
  __se_sys_mount fs/namespace.c:3014 [inline]
  __x64_sys_mount+0xbe/0x150 fs/namespace.c:3014
  do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
  entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x4418e9
Code: 26 02 00 85 c0 b8 00 00 00 00 48 0f 44 c3 5b c3 90 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 cb 08 fc ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007ffc88122678 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00000000004418e9
RDX: 00000000200000c0 RSI: 0000000020000000 RDI: 0000000000400000
RBP: 00007ffc881226c0 R08: 0000000020000100 R09: 0000000000000100
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000003
R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
Modules linked in:
---[ end trace 25e838f694c8a24f ]---
RIP: 0010:__phys_addr+0xff/0x120 arch/x86/mm/physaddr.c:22
Code: 3c 02 00 75 31 4c 8b 25 ff c3 ee 07 48 89 de bf ff ff ff 1f e8 a2 7a  
46 00 49 01 dc 48 81 fb ff ff ff 1f 76 a7 e8 61 79 46 00 <0f> 0b e8 6a e9  
89 00 e9 7a ff ff ff e8 c0 e9 89 00 eb c8 0f 1f 40
RSP: 0018:ffff8801c3387770 EFLAGS: 00010093
RAX: ffff8801c323a080 RBX: 000000007ffffff4 RCX: ffffffff81385c1e
RDX: 0000000000000000 RSI: ffffffff81385c2f RDI: 0000000000000007
RBP: ffff8801c3387788 R08: ffff8801c323a080 R09: ffffed003b5c4fe8
R10: ffffed003b5c4fe8 R11: ffff8801dae27f47 R12: 000000007ffffff4
R13: 0000000000000001 R14: ffffffff882f8c80 R15: 0000000000004063
FS:  000000000148d880(0000) GS:ffff8801dae00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000619570 CR3: 00000001c4ab0000 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@googlegroups.com.

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: kernel BUG at arch/x86/mm/physaddr.c:LINE!
  2018-10-10 15:14 kernel BUG at arch/x86/mm/physaddr.c:LINE! syzbot
@ 2018-10-10 15:22 ` Thomas Gleixner
  2018-10-10 15:35   ` Dmitry Vyukov
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Gleixner @ 2018-10-10 15:22 UTC (permalink / raw)
  To: syzbot
  Cc: Borislav Petkov, dave.hansen, H. Peter Anvin, LKML,
	Andy Lutomirski, mingo, Peter Zijlstra, syzkaller-bugs, x86,
	Miklos Szeredi, linux-unionfs

On Wed, 10 Oct 2018, syzbot wrote:

Cc+: Miklos

> Hello,
> 
> syzbot found the following crash on:
> 
> HEAD commit:    0854ba5ff5c9 Merge git://git.kernel.org/pub/scm/linux/kern..
> git tree:       upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=15e64ea1400000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=88e9a8a39dc0be2d
> dashboard link: https://syzkaller.appspot.com/bug?extid=ff03fe05c717b82502d0
> compiler:       gcc (GCC) 8.0.1 20180413 (experimental)
> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=10e516a1400000
> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=11d6e93a400000
> 
> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> Reported-by: syzbot+ff03fe05c717b82502d0@syzkaller.appspotmail.com
> 
> RBP: 00007ffc881226c0 R08: 0000000020000100 R09: 0000000000000100
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000003
> R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
> overlayfs: failed to verify origin (syzkaller.Ry8w8Y/file0, ino=16483,
> err=-12)
> ------------[ cut here ]------------
> kernel BUG at arch/x86/mm/physaddr.c:22!
> invalid opcode: 0000 [#1] PREEMPT SMP KASAN
> CPU: 0 PID: 5918 Comm: syz-executor189 Not tainted 4.19.0-rc7+ #53
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google
> 01/01/2011
> RIP: 0010:__phys_addr+0xff/0x120 arch/x86/mm/physaddr.c:22
> Code: 3c 02 00 75 31 4c 8b 25 ff c3 ee 07 48 89 de bf ff ff ff 1f e8 a2 7a 46
> 00 49 01 dc 48 81 fb ff ff ff 1f 76 a7 e8 61 79 46 00 <0f> 0b e8 6a e9 89 00
> e9 7a ff ff ff e8 c0 e9 89 00 eb c8 0f 1f 40
> RSP: 0018:ffff8801c3387770 EFLAGS: 00010093
> RAX: ffff8801c323a080 RBX: 000000007ffffff4 RCX: ffffffff81385c1e
> RDX: 0000000000000000 RSI: ffffffff81385c2f RDI: 0000000000000007
> RBP: ffff8801c3387788 R08: ffff8801c323a080 R09: ffffed003b5c4fe8
> R10: ffffed003b5c4fe8 R11: ffff8801dae27f47 R12: 000000007ffffff4
> R13: 0000000000000001 R14: ffffffff882f8c80 R15: 0000000000004063
> FS:  000000000148d880(0000) GS:ffff8801dae00000(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 0000000000619570 CR3: 00000001c4ab0000 CR4: 00000000001406f0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> Call Trace:
> virt_to_head_page include/linux/mm.h:658 [inline]
> virt_to_cache mm/slab.c:399 [inline]
> kfree+0x7b/0x230 mm/slab.c:3809
> ovl_verify_set_fh+0xba/0x180 fs/overlayfs/namei.c:435
> ovl_verify_origin fs/overlayfs/overlayfs.h:316 [inline]
> ovl_get_indexdir fs/overlayfs/super.c:1139 [inline]
> ovl_fill_super+0x3026/0x3f7b fs/overlayfs/super.c:1441
> mount_nodev+0x6b/0x110 fs/super.c:1204
> ovl_mount+0x2c/0x40 fs/overlayfs/super.c:1518
> mount_fs+0xae/0x31d fs/super.c:1261
> vfs_kern_mount.part.35+0xdc/0x4f0 fs/namespace.c:961
> vfs_kern_mount fs/namespace.c:951 [inline]
> do_new_mount fs/namespace.c:2457 [inline]
> do_mount+0x581/0x31f0 fs/namespace.c:2787
> ksys_mount+0x12d/0x140 fs/namespace.c:3003
> __do_sys_mount fs/namespace.c:3017 [inline]
> __se_sys_mount fs/namespace.c:3014 [inline]
> __x64_sys_mount+0xbe/0x150 fs/namespace.c:3014
> do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x4418e9
> Code: 26 02 00 85 c0 b8 00 00 00 00 48 0f 44 c3 5b c3 90 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 cb 08 fc ff c3 66 2e 0f 1f 84 00 00 00 00
> RSP: 002b:00007ffc88122678 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
> RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00000000004418e9
> RDX: 00000000200000c0 RSI: 0000000020000000 RDI: 0000000000400000
> RBP: 00007ffc881226c0 R08: 0000000020000100 R09: 0000000000000100
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000003
> R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
> Modules linked in:
> ---[ end trace 25e838f694c8a24f ]---
> RIP: 0010:__phys_addr+0xff/0x120 arch/x86/mm/physaddr.c:22
> Code: 3c 02 00 75 31 4c 8b 25 ff c3 ee 07 48 89 de bf ff ff ff 1f e8 a2 7a 46
> 00 49 01 dc 48 81 fb ff ff ff 1f 76 a7 e8 61 79 46 00 <0f> 0b e8 6a e9 89 00
> e9 7a ff ff ff e8 c0 e9 89 00 eb c8 0f 1f 40
> RSP: 0018:ffff8801c3387770 EFLAGS: 00010093
> RAX: ffff8801c323a080 RBX: 000000007ffffff4 RCX: ffffffff81385c1e
> RDX: 0000000000000000 RSI: ffffffff81385c2f RDI: 0000000000000007
> RBP: ffff8801c3387788 R08: ffff8801c323a080 R09: ffffed003b5c4fe8
> R10: ffffed003b5c4fe8 R11: ffff8801dae27f47 R12: 000000007ffffff4
> R13: 0000000000000001 R14: ffffffff882f8c80 R15: 0000000000004063
> FS:  000000000148d880(0000) GS:ffff8801dae00000(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 0000000000619570 CR3: 00000001c4ab0000 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@googlegroups.com.
> 
> 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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: kernel BUG at arch/x86/mm/physaddr.c:LINE!
  2018-10-10 15:22 ` Thomas Gleixner
@ 2018-10-10 15:35   ` Dmitry Vyukov
  2018-10-10 16:08     ` Amir Goldstein
  0 siblings, 1 reply; 4+ messages in thread
From: Dmitry Vyukov @ 2018-10-10 15:35 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: syzbot, Borislav Petkov, Dave Hansen, H. Peter Anvin, LKML,
	Andy Lutomirski, Ingo Molnar, Peter Zijlstra, syzkaller-bugs,
	the arch/x86 maintainers, Miklos Szeredi, linux-unionfs

On Wed, Oct 10, 2018 at 5:22 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
> On Wed, 10 Oct 2018, syzbot wrote:
>
> Cc+: Miklos

It seems reasonable to ignore arch/.*/mm/physaddr.c as suspected
guilty file in future -- we already ignore everything related to
kmalloc/kfree and this is called from kfree.
I've made the corresponding change to syzkaller:
https://github.com/google/syzkaller/commit/ba8cd6d708b97d6be4f9164758b6a7c690d252b2

Thanks for re-routing this one, Thomas!


>> Hello,
>>
>> syzbot found the following crash on:
>>
>> HEAD commit:    0854ba5ff5c9 Merge git://git.kernel.org/pub/scm/linux/kern..
>> git tree:       upstream
>> console output: https://syzkaller.appspot.com/x/log.txt?x=15e64ea1400000
>> kernel config:  https://syzkaller.appspot.com/x/.config?x=88e9a8a39dc0be2d
>> dashboard link: https://syzkaller.appspot.com/bug?extid=ff03fe05c717b82502d0
>> compiler:       gcc (GCC) 8.0.1 20180413 (experimental)
>> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=10e516a1400000
>> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=11d6e93a400000
>>
>> IMPORTANT: if you fix the bug, please add the following tag to the commit:
>> Reported-by: syzbot+ff03fe05c717b82502d0@syzkaller.appspotmail.com
>>
>> RBP: 00007ffc881226c0 R08: 0000000020000100 R09: 0000000000000100
>> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000003
>> R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
>> overlayfs: failed to verify origin (syzkaller.Ry8w8Y/file0, ino=16483,
>> err=-12)
>> ------------[ cut here ]------------
>> kernel BUG at arch/x86/mm/physaddr.c:22!
>> invalid opcode: 0000 [#1] PREEMPT SMP KASAN
>> CPU: 0 PID: 5918 Comm: syz-executor189 Not tainted 4.19.0-rc7+ #53
>> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google
>> 01/01/2011
>> RIP: 0010:__phys_addr+0xff/0x120 arch/x86/mm/physaddr.c:22
>> Code: 3c 02 00 75 31 4c 8b 25 ff c3 ee 07 48 89 de bf ff ff ff 1f e8 a2 7a 46
>> 00 49 01 dc 48 81 fb ff ff ff 1f 76 a7 e8 61 79 46 00 <0f> 0b e8 6a e9 89 00
>> e9 7a ff ff ff e8 c0 e9 89 00 eb c8 0f 1f 40
>> RSP: 0018:ffff8801c3387770 EFLAGS: 00010093
>> RAX: ffff8801c323a080 RBX: 000000007ffffff4 RCX: ffffffff81385c1e
>> RDX: 0000000000000000 RSI: ffffffff81385c2f RDI: 0000000000000007
>> RBP: ffff8801c3387788 R08: ffff8801c323a080 R09: ffffed003b5c4fe8
>> R10: ffffed003b5c4fe8 R11: ffff8801dae27f47 R12: 000000007ffffff4
>> R13: 0000000000000001 R14: ffffffff882f8c80 R15: 0000000000004063
>> FS:  000000000148d880(0000) GS:ffff8801dae00000(0000) knlGS:0000000000000000
>> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>> CR2: 0000000000619570 CR3: 00000001c4ab0000 CR4: 00000000001406f0
>> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
>> Call Trace:
>> virt_to_head_page include/linux/mm.h:658 [inline]
>> virt_to_cache mm/slab.c:399 [inline]
>> kfree+0x7b/0x230 mm/slab.c:3809
>> ovl_verify_set_fh+0xba/0x180 fs/overlayfs/namei.c:435
>> ovl_verify_origin fs/overlayfs/overlayfs.h:316 [inline]
>> ovl_get_indexdir fs/overlayfs/super.c:1139 [inline]
>> ovl_fill_super+0x3026/0x3f7b fs/overlayfs/super.c:1441
>> mount_nodev+0x6b/0x110 fs/super.c:1204
>> ovl_mount+0x2c/0x40 fs/overlayfs/super.c:1518
>> mount_fs+0xae/0x31d fs/super.c:1261
>> vfs_kern_mount.part.35+0xdc/0x4f0 fs/namespace.c:961
>> vfs_kern_mount fs/namespace.c:951 [inline]
>> do_new_mount fs/namespace.c:2457 [inline]
>> do_mount+0x581/0x31f0 fs/namespace.c:2787
>> ksys_mount+0x12d/0x140 fs/namespace.c:3003
>> __do_sys_mount fs/namespace.c:3017 [inline]
>> __se_sys_mount fs/namespace.c:3014 [inline]
>> __x64_sys_mount+0xbe/0x150 fs/namespace.c:3014
>> do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
>> entry_SYSCALL_64_after_hwframe+0x49/0xbe
>> RIP: 0033:0x4418e9
>> Code: 26 02 00 85 c0 b8 00 00 00 00 48 0f 44 c3 5b c3 90 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 cb 08 fc ff c3 66 2e 0f 1f 84 00 00 00 00
>> RSP: 002b:00007ffc88122678 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
>> RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00000000004418e9
>> RDX: 00000000200000c0 RSI: 0000000020000000 RDI: 0000000000400000
>> RBP: 00007ffc881226c0 R08: 0000000020000100 R09: 0000000000000100
>> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000003
>> R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
>> Modules linked in:
>> ---[ end trace 25e838f694c8a24f ]---
>> RIP: 0010:__phys_addr+0xff/0x120 arch/x86/mm/physaddr.c:22
>> Code: 3c 02 00 75 31 4c 8b 25 ff c3 ee 07 48 89 de bf ff ff ff 1f e8 a2 7a 46
>> 00 49 01 dc 48 81 fb ff ff ff 1f 76 a7 e8 61 79 46 00 <0f> 0b e8 6a e9 89 00
>> e9 7a ff ff ff e8 c0 e9 89 00 eb c8 0f 1f 40
>> RSP: 0018:ffff8801c3387770 EFLAGS: 00010093
>> RAX: ffff8801c323a080 RBX: 000000007ffffff4 RCX: ffffffff81385c1e
>> RDX: 0000000000000000 RSI: ffffffff81385c2f RDI: 0000000000000007
>> RBP: ffff8801c3387788 R08: ffff8801c323a080 R09: ffffed003b5c4fe8
>> R10: ffffed003b5c4fe8 R11: ffff8801dae27f47 R12: 000000007ffffff4
>> R13: 0000000000000001 R14: ffffffff882f8c80 R15: 0000000000004063
>> FS:  000000000148d880(0000) GS:ffff8801dae00000(0000) knlGS:0000000000000000
>> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>> CR2: 0000000000619570 CR3: 00000001c4ab0000 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@googlegroups.com.
>>
>> 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@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/syzkaller-bugs/alpine.DEB.2.21.1810101721430.15060%40nanos.tec.linutronix.de.
> For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: kernel BUG at arch/x86/mm/physaddr.c:LINE!
  2018-10-10 15:35   ` Dmitry Vyukov
@ 2018-10-10 16:08     ` Amir Goldstein
  0 siblings, 0 replies; 4+ messages in thread
From: Amir Goldstein @ 2018-10-10 16:08 UTC (permalink / raw)
  To: Dmitry Vyukov
  Cc: Thomas Gleixner, syzbot+ff03fe05c717b82502d0, bp, dave.hansen,
	hpa, linux-kernel, Andy Lutomirski, Ingo Molnar, Peter Zijlstra,
	syzkaller-bugs, x86, Miklos Szeredi, overlayfs

[-- Attachment #1: Type: text/plain, Size: 5903 bytes --]

On Wed, Oct 10, 2018 at 6:36 PM Dmitry Vyukov <dvyukov@google.com> wrote:
>
> On Wed, Oct 10, 2018 at 5:22 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
> > On Wed, 10 Oct 2018, syzbot wrote:
> >
> > Cc+: Miklos
>
> It seems reasonable to ignore arch/.*/mm/physaddr.c as suspected
> guilty file in future -- we already ignore everything related to
> kmalloc/kfree and this is called from kfree.
> I've made the corresponding change to syzkaller:
> https://github.com/google/syzkaller/commit/ba8cd6d708b97d6be4f9164758b6a7c690d252b2
>
> Thanks for re-routing this one, Thomas!
>
>
> >> Hello,
> >>
> >> syzbot found the following crash on:
> >>
> >> HEAD commit:    0854ba5ff5c9 Merge git://git.kernel.org/pub/scm/linux/kern..
> >> git tree:       upstream
> >> console output: https://syzkaller.appspot.com/x/log.txt?x=15e64ea1400000
> >> kernel config:  https://syzkaller.appspot.com/x/.config?x=88e9a8a39dc0be2d
> >> dashboard link: https://syzkaller.appspot.com/bug?extid=ff03fe05c717b82502d0
> >> compiler:       gcc (GCC) 8.0.1 20180413 (experimental)
> >> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=10e516a1400000
> >> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=11d6e93a400000
> >>
> >> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> >> Reported-by: syzbot+ff03fe05c717b82502d0@syzkaller.appspotmail.com
> >>
> >> RBP: 00007ffc881226c0 R08: 0000000020000100 R09: 0000000000000100
> >> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000003
> >> R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
> >> overlayfs: failed to verify origin (syzkaller.Ry8w8Y/file0, ino=16483,
> >> err=-12)
> >> ------------[ cut here ]------------
> >> kernel BUG at arch/x86/mm/physaddr.c:22!
> >> invalid opcode: 0000 [#1] PREEMPT SMP KASAN
> >> CPU: 0 PID: 5918 Comm: syz-executor189 Not tainted 4.19.0-rc7+ #53
> >> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google
> >> 01/01/2011
> >> RIP: 0010:__phys_addr+0xff/0x120 arch/x86/mm/physaddr.c:22
> >> Code: 3c 02 00 75 31 4c 8b 25 ff c3 ee 07 48 89 de bf ff ff ff 1f e8 a2 7a 46
> >> 00 49 01 dc 48 81 fb ff ff ff 1f 76 a7 e8 61 79 46 00 <0f> 0b e8 6a e9 89 00
> >> e9 7a ff ff ff e8 c0 e9 89 00 eb c8 0f 1f 40
> >> RSP: 0018:ffff8801c3387770 EFLAGS: 00010093
> >> RAX: ffff8801c323a080 RBX: 000000007ffffff4 RCX: ffffffff81385c1e
> >> RDX: 0000000000000000 RSI: ffffffff81385c2f RDI: 0000000000000007
> >> RBP: ffff8801c3387788 R08: ffff8801c323a080 R09: ffffed003b5c4fe8
> >> R10: ffffed003b5c4fe8 R11: ffff8801dae27f47 R12: 000000007ffffff4
> >> R13: 0000000000000001 R14: ffffffff882f8c80 R15: 0000000000004063
> >> FS:  000000000148d880(0000) GS:ffff8801dae00000(0000) knlGS:0000000000000000
> >> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> >> CR2: 0000000000619570 CR3: 00000001c4ab0000 CR4: 00000000001406f0
> >> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> >> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> >> Call Trace:
> >> virt_to_head_page include/linux/mm.h:658 [inline]
> >> virt_to_cache mm/slab.c:399 [inline]
> >> kfree+0x7b/0x230 mm/slab.c:3809
> >> ovl_verify_set_fh+0xba/0x180 fs/overlayfs/namei.c:435
> >> ovl_verify_origin fs/overlayfs/overlayfs.h:316 [inline]
> >> ovl_get_indexdir fs/overlayfs/super.c:1139 [inline]
> >> ovl_fill_super+0x3026/0x3f7b fs/overlayfs/super.c:1441
> >> mount_nodev+0x6b/0x110 fs/super.c:1204
> >> ovl_mount+0x2c/0x40 fs/overlayfs/super.c:1518
> >> mount_fs+0xae/0x31d fs/super.c:1261
> >> vfs_kern_mount.part.35+0xdc/0x4f0 fs/namespace.c:961
> >> vfs_kern_mount fs/namespace.c:951 [inline]
> >> do_new_mount fs/namespace.c:2457 [inline]
> >> do_mount+0x581/0x31f0 fs/namespace.c:2787
> >> ksys_mount+0x12d/0x140 fs/namespace.c:3003
> >> __do_sys_mount fs/namespace.c:3017 [inline]
> >> __se_sys_mount fs/namespace.c:3014 [inline]
> >> __x64_sys_mount+0xbe/0x150 fs/namespace.c:3014
> >> do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
> >> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> >> RIP: 0033:0x4418e9
> >> Code: 26 02 00 85 c0 b8 00 00 00 00 48 0f 44 c3 5b c3 90 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 cb 08 fc ff c3 66 2e 0f 1f 84 00 00 00 00
> >> RSP: 002b:00007ffc88122678 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
> >> RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00000000004418e9
> >> RDX: 00000000200000c0 RSI: 0000000020000000 RDI: 0000000000400000
> >> RBP: 00007ffc881226c0 R08: 0000000020000100 R09: 0000000000000100
> >> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000003
> >> R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
> >> Modules linked in:
> >> ---[ end trace 25e838f694c8a24f ]---
> >> RIP: 0010:__phys_addr+0xff/0x120 arch/x86/mm/physaddr.c:22
> >> Code: 3c 02 00 75 31 4c 8b 25 ff c3 ee 07 48 89 de bf ff ff ff 1f e8 a2 7a 46
> >> 00 49 01 dc 48 81 fb ff ff ff 1f 76 a7 e8 61 79 46 00 <0f> 0b e8 6a e9 89 00
> >> e9 7a ff ff ff e8 c0 e9 89 00 eb c8 0f 1f 40
> >> RSP: 0018:ffff8801c3387770 EFLAGS: 00010093
> >> RAX: ffff8801c323a080 RBX: 000000007ffffff4 RCX: ffffffff81385c1e
> >> RDX: 0000000000000000 RSI: ffffffff81385c2f RDI: 0000000000000007
> >> RBP: ffff8801c3387788 R08: ffff8801c323a080 R09: ffffed003b5c4fe8
> >> R10: ffffed003b5c4fe8 R11: ffff8801dae27f47 R12: 000000007ffffff4
> >> R13: 0000000000000001 R14: ffffffff882f8c80 R15: 0000000000004063
> >> FS:  000000000148d880(0000) GS:ffff8801dae00000(0000) knlGS:0000000000000000
> >> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> >> CR2: 0000000000619570 CR3: 00000001c4ab0000 CR4: 00000000001406f0
> >> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> >> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> >>
> >>

Not sure syzbot takes attachements, but here is the fix.

Thanks,
Amir.

[-- Attachment #2: 0001-ovl-fix-error-handling-in-ovl_verify_set_fh.patch --]
[-- Type: text/x-patch, Size: 1027 bytes --]

From 49c4c21b37ccbdc39680b0dc0f1095c1755f5b9a Mon Sep 17 00:00:00 2001
From: Amir Goldstein <amir73il@gmail.com>
Date: Wed, 10 Oct 2018 18:57:50 +0300
Subject: [PATCH] ovl: fix error handling in ovl_verify_set_fh()

We hit a BUG on kfree of an ERR_PTR()...

Reported-by: syzbot+ff03fe05c717b82502d0@syzkaller.appspotmail.com
Fixes: 8b88a2e64036 ("ovl: verify upper root dir matches lower root dir")
Cc: <stable@vger.kernel.org> # v4.13
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
 fs/overlayfs/namei.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c
index 9c0ca6a7becf..efd372312ef1 100644
--- a/fs/overlayfs/namei.c
+++ b/fs/overlayfs/namei.c
@@ -422,8 +422,10 @@ int ovl_verify_set_fh(struct dentry *dentry, const char *name,
 
 	fh = ovl_encode_real_fh(real, is_upper);
 	err = PTR_ERR(fh);
-	if (IS_ERR(fh))
+	if (IS_ERR(fh)) {
+		fh = NULL;
 		goto fail;
+	}
 
 	err = ovl_verify_fh(dentry, name, fh);
 	if (set && err == -ENODATA)
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-10-10 16:08 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-10 15:14 kernel BUG at arch/x86/mm/physaddr.c:LINE! syzbot
2018-10-10 15:22 ` Thomas Gleixner
2018-10-10 15:35   ` Dmitry Vyukov
2018-10-10 16:08     ` Amir Goldstein

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.