syzbot


general protection fault in fuse_atomic_open

Status: upstream: reported C repro on 2023/07/17 00:03
Bug presence: origin:downstream
[Documentation on labels]
Reported-by: syzbot+8e2c502cde30a2ac8d7f@syzkaller.appspotmail.com
First crash: 299d, last: 20d
Cause bisection: introduced by (bisect log) :
commit 57f3ff9648991998d008ecf32f2f9e78a08bfb8b
Author: Daniel Rosenberg <drosen@google.com>
Date: Thu Dec 2 21:50:02 2021 +0000

  ANDROID: fuse-bpf v1.1

Crash: BUG: unable to handle kernel NULL pointer dereference in fuse_atomic_open (log)
Repro: C syz .config
  
Bug presence (3)
Date Name Commit Repro Result
2023/07/17 android14-6.1 (ToT) f6707f352b54 C [report] general protection fault in fuse_atomic_open
2023/07/17 lts (merge base) b1644a0031cf C Didn't crash
2023/07/17 upstream (ToT) fdf0eaf11452 C Didn't crash
Similar bugs (3)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
android-5-10 general protection fault in fuse_atomic_open C error 16 15d 299d 0/2 upstream: reported C repro on 2023/07/16 23:36
android-5-15 general protection fault in fuse_atomic_open (2) origin:downstream C done 7 9d22h 286d 0/2 upstream: reported C repro on 2023/07/29 15:55
android-5-15 general protection fault in fuse_atomic_open 1 404d 404d 0/2 auto-obsoleted due to no activity on 2023/07/01 15:58
Last patch testing requests (4)
Created Duration User Patch Repo Result
2024/03/31 20:22 5m retest repro android14-6.1 report log
2024/03/31 20:22 5m retest repro android14-6.1 report log
2024/01/06 22:25 10m retest repro android14-6.1 report log
2023/11/23 13:39 6m retest repro android14-6.1 report log
Fix bisection attempts (5)
Created Duration User Patch Repo Result
2024/03/15 18:49 1h45m bisect fix android14-6.1 job log (0) log
2024/02/11 21:56 1h06m bisect fix android14-6.1 job log (0) log
2023/12/23 20:59 46m bisect fix android14-6.1 job log (0) log
2023/10/25 03:10 1h01m bisect fix android14-6.1 job log (0) log
2023/09/22 00:58 38m bisect fix android14-6.1 job log (0) log

Sample crash report:
general protection fault, probably for non-canonical address 0xdffffc0000000007: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000038-0x000000000000003f]
CPU: 1 PID: 298 Comm: syz-executor282 Not tainted 6.1.68-syzkaller-00059-gef39f76e4d24 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/29/2024
RIP: 0010:d_really_is_positive include/linux/dcache.h:493 [inline]
RIP: 0010:fuse_atomic_open+0x166/0x3a0 fs/fuse/dir.c:878
Code: 45 fe 8b 5d c4 89 de 83 e6 40 31 ff e8 e3 02 60 ff 89 d8 83 e0 40 75 07 e8 27 ff 5f ff eb 25 49 8d 5f 30 48 89 d8 48 c1 e8 03 <42> 80 3c 20 00 74 08 48 89 df e8 ab d2 a6 ff 48 83 3b 00 74 24 e8
RSP: 0018:ffffc90000ed78d8 EFLAGS: 00010202
RAX: 0000000000000007 RBX: 0000000000000038 RCX: ffff8881098b2880
RDX: ffff8881098b2880 RSI: 0000000000000040 RDI: 0000000000000000
RBP: ffffc90000ed7930 R08: ffffffff821571dd R09: fffff520001dae65
R10: 0000000000000000 R11: dffffc0000000001 R12: dffffc0000000000
R13: ffff888112d2fb80 R14: 0000000000000008 R15: 0000000000000008
FS:  00007fb73f15d6c0(0000) GS:ffff8881f7100000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fb73f15dd58 CR3: 00000001222f6000 CR4: 00000000003506a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 atomic_open fs/namei.c:3276 [inline]
 lookup_open fs/namei.c:3384 [inline]
 open_last_lookups fs/namei.c:3481 [inline]
 path_openat+0xf52/0x2d60 fs/namei.c:3711
 do_filp_open+0x230/0x480 fs/namei.c:3741
 do_sys_openat2+0x13f/0x850 fs/open.c:1341
 do_sys_open fs/open.c:1357 [inline]
 __do_sys_openat fs/open.c:1373 [inline]
 __se_sys_openat fs/open.c:1368 [inline]
 __x64_sys_openat+0x243/0x290 fs/open.c:1368
 do_syscall_x64 arch/x86/entry/common.c:51 [inline]
 do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:81
 entry_SYSCALL_64_after_hwframe+0x63/0xcd
RIP: 0033:0x7fb73f1bc479
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 c1 17 00 00 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 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fb73f15d218 EFLAGS: 00000246 ORIG_RAX: 0000000000000101
RAX: ffffffffffffffda RBX: 00007fb73f2493f8 RCX: 00007fb73f1bc479
RDX: 0000000000080041 RSI: 00000000200001c0 RDI: 00000000ffffff9c
RBP: 00007fb73f2493f0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00007fb73f216024
R13: 000000000000006e R14: 0030656c69662f30 R15: 2f30656c69662f2e
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:d_really_is_positive include/linux/dcache.h:493 [inline]
RIP: 0010:fuse_atomic_open+0x166/0x3a0 fs/fuse/dir.c:878
Code: 45 fe 8b 5d c4 89 de 83 e6 40 31 ff e8 e3 02 60 ff 89 d8 83 e0 40 75 07 e8 27 ff 5f ff eb 25 49 8d 5f 30 48 89 d8 48 c1 e8 03 <42> 80 3c 20 00 74 08 48 89 df e8 ab d2 a6 ff 48 83 3b 00 74 24 e8
RSP: 0018:ffffc90000ed78d8 EFLAGS: 00010202
RAX: 0000000000000007 RBX: 0000000000000038 RCX: ffff8881098b2880
RDX: ffff8881098b2880 RSI: 0000000000000040 RDI: 0000000000000000
RBP: ffffc90000ed7930 R08: ffffffff821571dd R09: fffff520001dae65
R10: 0000000000000000 R11: dffffc0000000001 R12: dffffc0000000000
R13: ffff888112d2fb80 R14: 0000000000000008 R15: 0000000000000008
FS:  00007fb73f15d6c0(0000) GS:ffff8881f7100000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fb73f15dd58 CR3: 00000001222f6000 CR4: 00000000003506a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	45 fe 8b 5d c4 89 de 	rex.RB decb -0x21763ba3(%r11)
   7:	83 e6 40             	and    $0x40,%esi
   a:	31 ff                	xor    %edi,%edi
   c:	e8 e3 02 60 ff       	call   0xff6002f4
  11:	89 d8                	mov    %ebx,%eax
  13:	83 e0 40             	and    $0x40,%eax
  16:	75 07                	jne    0x1f
  18:	e8 27 ff 5f ff       	call   0xff5fff44
  1d:	eb 25                	jmp    0x44
  1f:	49 8d 5f 30          	lea    0x30(%r15),%rbx
  23:	48 89 d8             	mov    %rbx,%rax
  26:	48 c1 e8 03          	shr    $0x3,%rax
* 2a:	42 80 3c 20 00       	cmpb   $0x0,(%rax,%r12,1) <-- trapping instruction
  2f:	74 08                	je     0x39
  31:	48 89 df             	mov    %rbx,%rdi
  34:	e8 ab d2 a6 ff       	call   0xffa6d2e4
  39:	48 83 3b 00          	cmpq   $0x0,(%rbx)
  3d:	74 24                	je     0x63
  3f:	e8                   	.byte 0xe8

Crashes (5):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/03/17 15:10 android14-6.1 ef39f76e4d24 d615901c .config strace log report syz C [disk image] [vmlinux] [kernel image] ci2-android-6-1 general protection fault in fuse_atomic_open
2023/11/09 13:34 android14-6.1 9d6ac9dc6ac8 4862372a .config strace log report syz C [disk image] [vmlinux] [kernel image] ci2-android-6-1 general protection fault in fuse_atomic_open
2023/07/17 00:01 android14-6.1 f6707f352b54 35d9ecc5 .config strace log report syz C [disk image] [vmlinux] [kernel image] ci2-android-6-1 general protection fault in fuse_atomic_open
2024/04/20 07:44 android14-6.1 dcb09569bbff af24b050 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-1 general protection fault in fuse_atomic_open
2024/03/17 14:53 android14-6.1 ef39f76e4d24 d615901c .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-1 general protection fault in fuse_atomic_open
* Struck through repros no longer work on HEAD.