syzbot


general protection fault in release_udmabuf

Status: upstream: reported C repro on 2022/08/19 00:09
Reported-by: syzbot+c80e9ef5d8bb45894db0@syzkaller.appspotmail.com
Fix commit: d9c04a1b7a15 udmabuf: Set ubuf->sg = NULL if the creation of sg table fails
Patched on: [ci-qemu-upstream ci-qemu-upstream-386 ci-qemu2-arm32 ci-qemu2-arm64 ci-qemu2-arm64-compat ci-qemu2-arm64-mte ci-upstream-bpf-kasan-gce ci-upstream-bpf-next-kasan-gce ci-upstream-gce-arm64 ci-upstream-gce-leak ci-upstream-kasan-gce ci-upstream-kasan-gce-386 ci-upstream-kasan-gce-root ci-upstream-kasan-gce-selinux-root ci-upstream-kasan-gce-smack-root ci-upstream-kmsan-gce ci-upstream-kmsan-gce-386 ci-upstream-linux-next-kasan-gce-root ci-upstream-net-kasan-gce ci-upstream-net-this-kasan-gce ci2-upstream-fs ci2-upstream-kcsan-gce ci2-upstream-usb], missing on: [ci-qemu2-riscv64]
First crash: 174d, last: 119d

Cause bisection: the issue happens on the oldest tested release (bisect log)
Crash: general protection fault in release_udmabuf (log)
Repro: C syz .config
Last patch testing requests:
Created Duration User Patch Repo Result
2022/08/19 10:51 16m hdanton@sina.com patch https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 7ebfc85e2cd7 OK log

Sample crash report:
general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
CPU: 1 PID: 3604 Comm: syz-executor162 Not tainted 6.0.0-rc2-syzkaller-00044-gdf0219d11b6f #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/22/2022
RIP: 0010:dma_unmap_sgtable include/linux/dma-mapping.h:378 [inline]
RIP: 0010:put_sg_table drivers/dma-buf/udmabuf.c:89 [inline]
RIP: 0010:release_udmabuf+0xcb/0x4f0 drivers/dma-buf/udmabuf.c:114
Code: 48 89 fa 48 c1 ea 03 80 3c 02 00 0f 85 2b 04 00 00 48 8d 7d 0c 4c 8b 63 30 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 14 02 48 89 f8 83 e0 07 83 c0 03 38 d0 7c 08 84 d2 0f 85 e2
RSP: 0018:ffffc9000395fc58 EFLAGS: 00010256
RAX: dffffc0000000000 RBX: ffffffff8cb681e0 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffff84ada4e0 RDI: 0000000000000000
RBP: fffffffffffffff4 R08: 0000000000000005 R09: 0000000000000000
R10: 0000000000000000 R11: 000000000008c07c R12: ffff888147721000
R13: ffff88807404a090 R14: ffff88801bb8bdc0 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffff8880b9b00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f2fb50a7908 CR3: 000000000bc8e000 CR4: 0000000000350ee0
Call Trace:
 <TASK>
 dma_buf_release+0x157/0x2d0 drivers/dma-buf/dma-buf.c:78
 __dentry_kill+0x42b/0x640 fs/dcache.c:612
 dentry_kill fs/dcache.c:733 [inline]
 dput+0x806/0xdb0 fs/dcache.c:913
 __fput+0x39c/0x9d0 fs/file_table.c:333
 task_work_run+0xdd/0x1a0 kernel/task_work.c:177
 exit_task_work include/linux/task_work.h:38 [inline]
 do_exit+0xad5/0x29b0 kernel/exit.c:795
 do_group_exit+0xd2/0x2f0 kernel/exit.c:925
 __do_sys_exit_group kernel/exit.c:936 [inline]
 __se_sys_exit_group kernel/exit.c:934 [inline]
 __x64_sys_exit_group+0x3a/0x50 kernel/exit.c:934
 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+0x63/0xcd
RIP: 0033:0x7f2fb505d109
Code: Unable to access opcode bytes at RIP 0x7f2fb505d0df.
RSP: 002b:00007fff77114458 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
RAX: ffffffffffffffda RBX: 00007f2fb50d8430 RCX: 00007f2fb505d109
RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000001
RBP: 0000000000000001 R08: ffffffffffffffc0 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00007f2fb50d8430
R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000001
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:dma_unmap_sgtable include/linux/dma-mapping.h:378 [inline]
RIP: 0010:put_sg_table drivers/dma-buf/udmabuf.c:89 [inline]
RIP: 0010:release_udmabuf+0xcb/0x4f0 drivers/dma-buf/udmabuf.c:114
Code: 48 89 fa 48 c1 ea 03 80 3c 02 00 0f 85 2b 04 00 00 48 8d 7d 0c 4c 8b 63 30 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 14 02 48 89 f8 83 e0 07 83 c0 03 38 d0 7c 08 84 d2 0f 85 e2
RSP: 0018:ffffc9000395fc58 EFLAGS: 00010256
RAX: dffffc0000000000 RBX: ffffffff8cb681e0 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffff84ada4e0 RDI: 0000000000000000
RBP: fffffffffffffff4 R08: 0000000000000005 R09: 0000000000000000
R10: 0000000000000000 R11: 000000000008c07c R12: ffff888147721000
R13: ffff88807404a090 R14: ffff88801bb8bdc0 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffff8880b9a00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fd2ed62c300 CR3: 000000000bc8e000 CR4: 0000000000350ef0
----------------
Code disassembly (best guess):
   0:	48 89 fa             	mov    %rdi,%rdx
   3:	48 c1 ea 03          	shr    $0x3,%rdx
   7:	80 3c 02 00          	cmpb   $0x0,(%rdx,%rax,1)
   b:	0f 85 2b 04 00 00    	jne    0x43c
  11:	48 8d 7d 0c          	lea    0xc(%rbp),%rdi
  15:	4c 8b 63 30          	mov    0x30(%rbx),%r12
  19:	48 b8 00 00 00 00 00 	movabs $0xdffffc0000000000,%rax
  20:	fc ff df
  23:	48 89 fa             	mov    %rdi,%rdx
  26:	48 c1 ea 03          	shr    $0x3,%rdx
* 2a:	0f b6 14 02          	movzbl (%rdx,%rax,1),%edx <-- trapping instruction
  2e:	48 89 f8             	mov    %rdi,%rax
  31:	83 e0 07             	and    $0x7,%eax
  34:	83 c0 03             	add    $0x3,%eax
  37:	38 d0                	cmp    %dl,%al
  39:	7c 08                	jl     0x43
  3b:	84 d2                	test   %dl,%dl
  3d:	0f                   	.byte 0xf
  3e:	85 e2                	test   %esp,%edx

Crashes (31):
Manager Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets Title
ci-upstream-kasan-gce-root 2022/08/24 07:30 upstream df0219d11b6f cea8b0f7 .config strace log report syz C general protection fault in release_udmabuf
ci-upstream-kasan-gce-root 2022/08/24 07:09 upstream df0219d11b6f cea8b0f7 .config strace log report syz C general protection fault in release_udmabuf
ci-upstream-kasan-gce-root 2022/08/24 06:49 upstream df0219d11b6f cea8b0f7 .config strace log report syz C general protection fault in release_udmabuf
ci-upstream-kasan-gce-root 2022/08/24 06:24 upstream df0219d11b6f cea8b0f7 .config strace log report syz C general protection fault in release_udmabuf
ci-upstream-kasan-gce 2022/08/15 02:04 upstream 7ebfc85e2cd7 8dfcaa3d .config strace log report syz C general protection fault in release_udmabuf
ci-upstream-kasan-gce 2022/08/15 01:42 upstream 7ebfc85e2cd7 8dfcaa3d .config strace log report syz C general protection fault in release_udmabuf
ci-upstream-kasan-gce 2022/08/15 01:21 upstream 7ebfc85e2cd7 8dfcaa3d .config strace log report syz C general protection fault in release_udmabuf
ci-upstream-kasan-gce 2022/08/15 01:01 upstream 7ebfc85e2cd7 8dfcaa3d .config strace log report syz C general protection fault in release_udmabuf
ci-upstream-kasan-gce-root 2022/08/15 00:40 upstream 7ebfc85e2cd7 8dfcaa3d .config strace log report syz C general protection fault in release_udmabuf
ci-upstream-kasan-gce-selinux-root 2022/08/15 00:39 upstream 7ebfc85e2cd7 8dfcaa3d .config strace log report syz C general protection fault in release_udmabuf
ci-upstream-kasan-gce 2022/08/15 00:24 upstream 7ebfc85e2cd7 8dfcaa3d .config strace log report syz C general protection fault in release_udmabuf
ci-upstream-linux-next-kasan-gce-root 2022/08/15 00:35 linux-next 6c8f479764eb 8dfcaa3d .config strace log report syz C general protection fault in release_udmabuf
ci-upstream-kasan-gce-smack-root 2022/08/15 00:38 upstream 7ebfc85e2cd7 8dfcaa3d .config strace log report syz C BUG: unable to handle kernel paging request in release_udmabuf
ci-upstream-gce-arm64 2022/10/08 22:58 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci bbed346d5a96 aea5da89 .config console log report syz C [disk image] [vmlinux] BUG: unable to handle kernel paging request in release_udmabuf
ci-upstream-kasan-gce-selinux-root 2022/10/01 17:57 upstream ffb4d94b4314 feb56351 .config console log report info [disk image] [vmlinux] general protection fault in release_udmabuf
ci-upstream-kasan-gce-selinux-root 2022/09/30 05:43 upstream 511cce163b75 1d385642 .config console log report info general protection fault in release_udmabuf
ci-upstream-kasan-gce-root 2022/09/29 01:44 upstream 49c13ed0316d e2556bc3 .config console log report info general protection fault in release_udmabuf
ci-upstream-kasan-gce-selinux-root 2022/09/29 01:26 upstream 49c13ed0316d e2556bc3 .config console log report info general protection fault in release_udmabuf
ci-upstream-kasan-gce-root 2022/09/15 20:38 upstream 3245cb65fd91 dd9a85ff .config console log report info general protection fault in release_udmabuf
ci-upstream-kasan-gce-selinux-root 2022/09/15 20:00 upstream 3245cb65fd91 dd9a85ff .config console log report info [disk image] [vmlinux] general protection fault in release_udmabuf
ci-upstream-kasan-gce-selinux-root 2022/09/14 18:41 upstream 3245cb65fd91 b884348d .config console log report info general protection fault in release_udmabuf
ci-upstream-kasan-gce-root 2022/09/14 18:39 upstream 3245cb65fd91 b884348d .config console log report info [disk image] [vmlinux] general protection fault in release_udmabuf
ci-upstream-kasan-gce 2022/09/06 13:54 upstream 53e99dcff61e 65aea2b9 .config console log report info general protection fault in release_udmabuf
ci-upstream-kasan-gce-selinux-root 2022/08/15 00:20 upstream 7ebfc85e2cd7 8dfcaa3d .config console log report info general protection fault in release_udmabuf
ci-upstream-kasan-gce-root 2022/08/15 00:20 upstream 7ebfc85e2cd7 8dfcaa3d .config console log report info general protection fault in release_udmabuf
ci-upstream-kasan-gce 2022/08/15 00:06 upstream 7ebfc85e2cd7 8dfcaa3d .config console log report info general protection fault in release_udmabuf
ci-upstream-kasan-gce-386 2022/09/15 19:43 upstream 3245cb65fd91 dd9a85ff .config console log report info general protection fault in release_udmabuf
ci-upstream-kasan-gce-386 2022/08/15 00:40 upstream 7ebfc85e2cd7 8dfcaa3d .config console log report info general protection fault in release_udmabuf
ci-upstream-linux-next-kasan-gce-root 2022/08/15 00:19 linux-next 6c8f479764eb 8dfcaa3d .config console log report info general protection fault in release_udmabuf
ci-upstream-kasan-gce-smack-root 2022/08/15 00:20 upstream 7ebfc85e2cd7 8dfcaa3d .config console log report info BUG: unable to handle kernel paging request in release_udmabuf
ci-upstream-gce-arm64 2022/09/15 20:13 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci a6b443748715 dd9a85ff .config console log report info [disk image] [vmlinux] BUG: unable to handle kernel paging request in release_udmabuf
* Struck through repros no longer work on HEAD.