syzbot


BUG: unable to handle kernel NULL pointer dereference in kvfree

Status: moderation: reported on 2022/09/24 14:18
Reported-by: syzbot+20bafea068036031d3f1@syzkaller.appspotmail.com
First crash: 74d, last: 70d

Sample crash report:
loop0: detected capacity change from 0 to 8189
ntfs3: loop0: Different NTFS' sector size (1024) and media sector size (512)
BUG: kernel NULL pointer dereference, address: 0000000000000020
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 732c2067 P4D 732c2067 PUD 7414d067 PMD 0 
Oops: 0000 [#1] PREEMPT SMP KASAN
CPU: 1 PID: 4925 Comm: syz-executor.0 Not tainted 6.0.0-rc6-syzkaller-00286-ga63f2e7cb110 #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014
RIP: 0010:freelist_dereference mm/slub.c:352 [inline]
RIP: 0010:get_freepointer mm/slub.c:359 [inline]
RIP: 0010:slab_free_freelist_hook+0x62/0x1c0 mm/slub.c:1782
Code: 0f 96 c0 48 85 d2 41 0f 95 c0 41 20 c0 0f 85 10 01 00 00 48 c7 06 00 00 00 00 48 89 f3 49 c7 06 00 00 00 00 8b 45 28 4d 89 e7 <4d> 8b 24 04 66 90 8b 75 1c 4c 89 ff e8 ad 46 97 ff f6 45 0a 40 74
RSP: 0018:ffffc9002959f9f8 EFLAGS: 00010287
RAX: 0000000000000020 RBX: ffffc9002959fa50 RCX: 1ffffffff212ca6e
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffff888011842640 R08: 0000000000000001 R09: ffffffff908e5a97
R10: 0000000000000001 R11: 000000000008c07c R12: 0000000000000000
R13: ffff88801deba900 R14: ffffc9002959fa58 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffff88802c900000(0063) knlGS:00000000f7fb5b40
CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
CR2: 0000000000000020 CR3: 000000004a0a8000 CR4: 0000000000150ee0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 slab_free mm/slub.c:3539 [inline]
 kfree+0xe2/0x580 mm/slub.c:4567
 kvfree+0x42/0x50 mm/util.c:655
 run_close fs/ntfs3/ntfs_fs.h:930 [inline]
 ni_clear+0x2f7/0x690 fs/ntfs3/frecord.c:123
 evict+0x2ed/0x6b0 fs/inode.c:665
 iput_final fs/inode.c:1748 [inline]
 iput.part.0+0x55d/0x810 fs/inode.c:1774
 iput+0x58/0x70 fs/inode.c:1764
 ntfs_fill_super+0x2e89/0x37f0 fs/ntfs3/super.c:1190
 get_tree_bdev+0x440/0x760 fs/super.c:1323
 vfs_get_tree+0x89/0x2f0 fs/super.c:1530
 do_new_mount fs/namespace.c:3040 [inline]
 path_mount+0x1326/0x1e20 fs/namespace.c:3370
 do_mount fs/namespace.c:3383 [inline]
 __do_sys_mount fs/namespace.c:3591 [inline]
 __se_sys_mount fs/namespace.c:3568 [inline]
 __ia32_sys_mount+0x27e/0x300 fs/namespace.c:3568
 do_syscall_32_irqs_on arch/x86/entry/common.c:112 [inline]
 __do_fast_syscall_32+0x65/0xf0 arch/x86/entry/common.c:178
 do_fast_syscall_32+0x2f/0x70 arch/x86/entry/common.c:203
 entry_SYSENTER_compat_after_hwframe+0x70/0x82
RIP: 0023:0xf7fba549
Code: 03 74 c0 01 10 05 03 74 b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00
RSP: 002b:00000000f7fb5410 EFLAGS: 00000296 ORIG_RAX: 0000000000000015
RAX: ffffffffffffffda RBX: 00000000f7fb5480 RCX: 0000000020000100
RDX: 0000000020000000 RSI: 0000000000000000 RDI: 00000000f7fb54c0
RBP: 00000000f7fb54c0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000292 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
 </TASK>
Modules linked in:
CR2: 0000000000000020
---[ end trace 0000000000000000 ]---
RIP: 0010:freelist_dereference mm/slub.c:352 [inline]
RIP: 0010:get_freepointer mm/slub.c:359 [inline]
RIP: 0010:slab_free_freelist_hook+0x62/0x1c0 mm/slub.c:1782
Code: 0f 96 c0 48 85 d2 41 0f 95 c0 41 20 c0 0f 85 10 01 00 00 48 c7 06 00 00 00 00 48 89 f3 49 c7 06 00 00 00 00 8b 45 28 4d 89 e7 <4d> 8b 24 04 66 90 8b 75 1c 4c 89 ff e8 ad 46 97 ff f6 45 0a 40 74
RSP: 0018:ffffc9002959f9f8 EFLAGS: 00010287
RAX: 0000000000000020 RBX: ffffc9002959fa50 RCX: 1ffffffff212ca6e
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffff888011842640 R08: 0000000000000001 R09: ffffffff908e5a97
R10: 0000000000000001 R11: 000000000008c07c R12: 0000000000000000
R13: ffff88801deba900 R14: ffffc9002959fa58 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffff88802c800000(0063) knlGS:00000000f7fb5b40
CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
CR2: 00000000f7f7de48 CR3: 000000004a0a8000 CR4: 0000000000150ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	0f 96 c0             	setbe  %al
   3:	48 85 d2             	test   %rdx,%rdx
   6:	41 0f 95 c0          	setne  %r8b
   a:	41 20 c0             	and    %al,%r8b
   d:	0f 85 10 01 00 00    	jne    0x123
  13:	48 c7 06 00 00 00 00 	movq   $0x0,(%rsi)
  1a:	48 89 f3             	mov    %rsi,%rbx
  1d:	49 c7 06 00 00 00 00 	movq   $0x0,(%r14)
  24:	8b 45 28             	mov    0x28(%rbp),%eax
  27:	4d 89 e7             	mov    %r12,%r15
* 2a:	4d 8b 24 04          	mov    (%r12,%rax,1),%r12 <-- trapping instruction
  2e:	66 90                	xchg   %ax,%ax
  30:	8b 75 1c             	mov    0x1c(%rbp),%esi
  33:	4c 89 ff             	mov    %r15,%rdi
  36:	e8 ad 46 97 ff       	callq  0xff9746e8
  3b:	f6 45 0a 40          	testb  $0x40,0xa(%rbp)
  3f:	74                   	.byte 0x74

Crashes (2):
Manager Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Title
ci-qemu-upstream-386 2022/09/24 10:38 upstream a63f2e7cb110 0042f2b4 .config log report info BUG: unable to handle kernel NULL pointer dereference in kvfree
ci-qemu-upstream-386 2022/09/20 14:09 upstream 521a547ced64 7c41a9ba .config log report info BUG: unable to handle kernel NULL pointer dereference in kvfree
* Struck through repros no longer work on HEAD.