syzbot


KASAN: null-ptr-deref Write in vfs_rmdir

Status: upstream: reported C repro on 2024/04/11 17:58
Bug presence: origin:downstream
[Documentation on labels]
Reported-by: syzbot+5b10c7b0b58770c64745@syzkaller.appspotmail.com
First crash: 23d, last: 12d
Bug presence (3)
Date Name Commit Repro Result
2024/04/12 android13-5.15-lts (ToT) 993bed180178 C [report] KASAN: null-ptr-deref Write in vfs_rmdir
2024/04/12 lts (merge base) 6139f2a02fe0 C Didn't crash
2024/04/12 upstream (ToT) 586b5dfb51b9 C Didn't crash
Similar bugs (3)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
android-6-1 KASAN: null-ptr-deref Write in vfs_rmdir origin:downstream C 38 5d10h 23d 0/2 upstream: reported C repro on 2024/04/11 09:39
android-54 KASAN: null-ptr-deref Write in vfs_rmdir C 26 2d23h 23d 0/2 upstream: reported C repro on 2024/04/11 05:33
android-5-10 KASAN: null-ptr-deref Write in vfs_rmdir C 97 34m 23d 0/2 upstream: reported C repro on 2024/04/11 05:14

Sample crash report:
RSP: 002b:00007ffe24bbe058 EFLAGS: 00000202 ORIG_RAX: 00000000000000a6
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 00007f25d255b4c7
RDX: 0000000000000000 RSI: 0000000000000009 RDI: 00007ffe24bbe110
RBP: 00007ffe24bbe110 R08: 0000000000000000 R09: 0000000000000000
R10: 00000000ffffffff R11: 0000000000000202 R12: 00007ffe24bbf200
R13: 0000555555721700 R14: 00007ffe24bc0270 R15: 0000000000000001
 </TASK>
---[ end trace b0241fd09f6c53c8 ]---
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:101 [inline]
BUG: KASAN: null-ptr-deref in atomic_inc_return include/linux/atomic/atomic-instrumented.h:188 [inline]
BUG: KASAN: null-ptr-deref in ihold+0x20/0x60 fs/inode.c:426
Write of size 4 at addr 0000000000000170 by task syz-executor400/293

CPU: 0 PID: 293 Comm: syz-executor400 Tainted: G        W         5.15.148-syzkaller-00013-gad06eaf051cd #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x151/0x1b7 lib/dump_stack.c:106
 __kasan_report mm/kasan/report.c:431 [inline]
 kasan_report+0x16f/0x1c0 mm/kasan/report.c:444
 kasan_check_range+0x293/0x2a0 mm/kasan/generic.c:189
 __kasan_check_write+0x14/0x20 mm/kasan/shadow.c:37
 instrument_atomic_read_write include/linux/instrumented.h:101 [inline]
 atomic_inc_return include/linux/atomic/atomic-instrumented.h:188 [inline]
 ihold+0x20/0x60 fs/inode.c:426
 d_delete_notify include/linux/fsnotify.h:267 [inline]
 vfs_rmdir+0x201/0x470 fs/namei.c:4168
 incfs_kill_sb+0x113/0x230 fs/incfs/vfs.c:1961
 deactivate_locked_super+0xad/0x110 fs/super.c:335
 deactivate_super+0xbe/0xf0 fs/super.c:366
 cleanup_mnt+0x45c/0x510 fs/namespace.c:1143
 __cleanup_mnt+0x19/0x20 fs/namespace.c:1150
 task_work_run+0x129/0x190 kernel/task_work.c:164
 ptrace_notify+0x29e/0x350 kernel/signal.c:2388
 ptrace_report_syscall include/linux/tracehook.h:66 [inline]
 tracehook_report_syscall_exit include/linux/tracehook.h:130 [inline]
 arch_syscall_exit_tracehook include/linux/entry-common.h:297 [inline]
 syscall_exit_work kernel/entry/common.c:256 [inline]
 syscall_exit_to_user_mode_prepare kernel/entry/common.c:283 [inline]
 __syscall_exit_to_user_mode_work kernel/entry/common.c:288 [inline]
 syscall_exit_to_user_mode+0xac/0x160 kernel/entry/common.c:301
 do_syscall_64+0x49/0xb0 arch/x86/entry/common.c:86
 entry_SYSCALL_64_after_hwframe+0x61/0xcb
RIP: 0033:0x7f25d255b4c7
Code: 07 00 48 83 c4 08 5b 5d c3 66 2e 0f 1f 84 00 00 00 00 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 b8 a6 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 01 c3 48 c7 c2 b8 ff ff ff f7 d8 64 89 02 b8
RSP: 002b:00007ffe24bbe058 EFLAGS: 00000202 ORIG_RAX: 00000000000000a6
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 00007f25d255b4c7
RDX: 0000000000000000 RSI: 0000000000000009 RDI: 00007ffe24bbe110
RBP: 00007ffe24bbe110 R08: 0000000000000000 R09: 0000000000000000
R10: 00000000ffffffff R11: 0000000000000202 R12: 00007ffe24bbf200
R13: 0000555555721700 R14: 00007ffe24bc0270 R15: 0000000000000001
 </TASK>
==================================================================
BUG: kernel NULL pointer dereference, address: 0000000000000170
#PF: supervisor write access in kernel mode
#PF: error_code(0x0002) - not-present page
PGD 0 P4D 0 
Oops: 0002 [#1] PREEMPT SMP KASAN
CPU: 0 PID: 293 Comm: syz-executor400 Tainted: G    B   W         5.15.148-syzkaller-00013-gad06eaf051cd #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
RIP: 0010:arch_atomic_inc_return include/linux/atomic/atomic-arch-fallback.h:370 [inline]
RIP: 0010:atomic_inc_return include/linux/atomic/atomic-instrumented.h:189 [inline]
RIP: 0010:ihold+0x25/0x60 fs/inode.c:426
Code: 00 00 00 00 00 55 48 89 e5 41 56 53 49 89 fe e8 d1 cc ae ff 49 8d be 70 01 00 00 be 04 00 00 00 e8 d0 ef f0 ff bb 01 00 00 00 <f0> 41 0f c1 9e 70 01 00 00 ff c3 bf 02 00 00 00 89 de e8 54 d0 ae
RSP: 0018:ffffc90000977c08 EFLAGS: 00010246
RAX: ffff88811fc60000 RBX: 0000000000000001 RCX: ffff88811fc60000
RDX: 0000000000000000 RSI: 0000000000000282 RDI: 00000000ffffffff
RBP: ffffc90000977c18 R08: ffffffff81416e7b R09: 0000000000000003
R10: fffffbfff0e5244c R11: dffffc0000000001 R12: dffffc0000000000
R13: ffff88811c573ee0 R14: 0000000000000000 R15: 1ffff110238ae7e2
FS:  0000555555718380(0000) GS:ffff8881f7000000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000170 CR3: 000000011fba2000 CR4: 00000000003506b0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 d_delete_notify include/linux/fsnotify.h:267 [inline]
 vfs_rmdir+0x201/0x470 fs/namei.c:4168
 incfs_kill_sb+0x113/0x230 fs/incfs/vfs.c:1961
 deactivate_locked_super+0xad/0x110 fs/super.c:335
 deactivate_super+0xbe/0xf0 fs/super.c:366
 cleanup_mnt+0x45c/0x510 fs/namespace.c:1143
 __cleanup_mnt+0x19/0x20 fs/namespace.c:1150
 task_work_run+0x129/0x190 kernel/task_work.c:164
 ptrace_notify+0x29e/0x350 kernel/signal.c:2388
 ptrace_report_syscall include/linux/tracehook.h:66 [inline]
 tracehook_report_syscall_exit include/linux/tracehook.h:130 [inline]
 arch_syscall_exit_tracehook include/linux/entry-common.h:297 [inline]
 syscall_exit_work kernel/entry/common.c:256 [inline]
 syscall_exit_to_user_mode_prepare kernel/entry/common.c:283 [inline]
 __syscall_exit_to_user_mode_work kernel/entry/common.c:288 [inline]
 syscall_exit_to_user_mode+0xac/0x160 kernel/entry/common.c:301
 do_syscall_64+0x49/0xb0 arch/x86/entry/common.c:86
 entry_SYSCALL_64_after_hwframe+0x61/0xcb
RIP: 0033:0x7f25d255b4c7
Code: 07 00 48 83 c4 08 5b 5d c3 66 2e 0f 1f 84 00 00 00 00 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 b8 a6 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 01 c3 48 c7 c2 b8 ff ff ff f7 d8 64 89 02 b8
RSP: 002b:00007ffe24bbe058 EFLAGS: 00000202 ORIG_RAX: 00000000000000a6
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 00007f25d255b4c7
RDX: 0000000000000000 RSI: 0000000000000009 RDI: 00007ffe24bbe110
RBP: 00007ffe24bbe110 R08: 0000000000000000 R09: 0000000000000000
R10: 00000000ffffffff R11: 0000000000000202 R12: 00007ffe24bbf200
R13: 0000555555721700 R14: 00007ffe24bc0270 R15: 0000000000000001
 </TASK>
Modules linked in:
CR2: 0000000000000170
---[ end trace b0241fd09f6c53c9 ]---
RIP: 0010:arch_atomic_inc_return include/linux/atomic/atomic-arch-fallback.h:370 [inline]
RIP: 0010:atomic_inc_return include/linux/atomic/atomic-instrumented.h:189 [inline]
RIP: 0010:ihold+0x25/0x60 fs/inode.c:426
Code: 00 00 00 00 00 55 48 89 e5 41 56 53 49 89 fe e8 d1 cc ae ff 49 8d be 70 01 00 00 be 04 00 00 00 e8 d0 ef f0 ff bb 01 00 00 00 <f0> 41 0f c1 9e 70 01 00 00 ff c3 bf 02 00 00 00 89 de e8 54 d0 ae
RSP: 0018:ffffc90000977c08 EFLAGS: 00010246
RAX: ffff88811fc60000 RBX: 0000000000000001 RCX: ffff88811fc60000
RDX: 0000000000000000 RSI: 0000000000000282 RDI: 00000000ffffffff
RBP: ffffc90000977c18 R08: ffffffff81416e7b R09: 0000000000000003
R10: fffffbfff0e5244c R11: dffffc0000000001 R12: dffffc0000000000
R13: ffff88811c573ee0 R14: 0000000000000000 R15: 1ffff110238ae7e2
FS:  0000555555718380(0000) GS:ffff8881f7000000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000170 CR3: 000000011fba2000 CR4: 00000000003506b0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	00 00                	add    %al,(%rax)
   2:	00 00                	add    %al,(%rax)
   4:	00 55 48             	add    %dl,0x48(%rbp)
   7:	89 e5                	mov    %esp,%ebp
   9:	41 56                	push   %r14
   b:	53                   	push   %rbx
   c:	49 89 fe             	mov    %rdi,%r14
   f:	e8 d1 cc ae ff       	call   0xffaecce5
  14:	49 8d be 70 01 00 00 	lea    0x170(%r14),%rdi
  1b:	be 04 00 00 00       	mov    $0x4,%esi
  20:	e8 d0 ef f0 ff       	call   0xfff0eff5
  25:	bb 01 00 00 00       	mov    $0x1,%ebx
* 2a:	f0 41 0f c1 9e 70 01 	lock xadd %ebx,0x170(%r14) <-- trapping instruction
  31:	00 00
  33:	ff c3                	inc    %ebx
  35:	bf 02 00 00 00       	mov    $0x2,%edi
  3a:	89 de                	mov    %ebx,%esi
  3c:	e8                   	.byte 0xe8
  3d:	54                   	push   %rsp
  3e:	d0                   	.byte 0xd0
  3f:	ae                   	scas   %es:(%rdi),%al

Crashes (5):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/04/22 02:33 android13-5.15-lts ad06eaf051cd af24b050 .config strace log report syz C [disk image] [vmlinux] [kernel image] ci2-android-5-15 KASAN: null-ptr-deref Write in vfs_rmdir
2024/04/21 20:19 android13-5.15-lts ad06eaf051cd af24b050 .config strace log report syz C [disk image] [vmlinux] [kernel image] ci2-android-5-15 KASAN: null-ptr-deref Write in vfs_rmdir
2024/04/11 17:47 android13-5.15-lts 993bed180178 95ed9ece .config strace log report syz C [disk image] [vmlinux] [kernel image] ci2-android-5-15 KASAN: null-ptr-deref Write in vfs_rmdir
2024/04/22 13:32 android13-5.15-lts ad06eaf051cd 36c961ad .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-5-15 KASAN: null-ptr-deref Write in vfs_rmdir
2024/04/11 17:07 android13-5.15-lts 993bed180178 95ed9ece .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-5-15 KASAN: null-ptr-deref Write in vfs_rmdir
* Struck through repros no longer work on HEAD.