syzbot


KMSAN: kernel-infoleak in compat_drm_wait_vblank

Status: fixed on 2021/11/10 02:36
Reported-by: syzbot+620cf21140fc7e772a5d@syzkaller.appspotmail.com
Fix commit: de066e116306 drm/compat: Clear bounce structures drm/compat: Clear bounce structures
First crash: 583d, last: 537d

Sample crash report:
=====================================================
BUG: KMSAN: kernel-infoleak in kmsan_copy_to_user+0x9c/0xb0 mm/kmsan/kmsan_hooks.c:249
CPU: 1 PID: 23633 Comm: syz-executor.0 Not tainted 5.11.0-rc7-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:79 [inline]
 dump_stack+0x21c/0x280 lib/dump_stack.c:120
 kmsan_report+0xfb/0x1e0 mm/kmsan/kmsan_report.c:118
 kmsan_internal_check_memory+0x484/0x520 mm/kmsan/kmsan.c:437
 kmsan_copy_to_user+0x9c/0xb0 mm/kmsan/kmsan_hooks.c:249
 instrument_copy_to_user include/linux/instrumented.h:121 [inline]
 _copy_to_user+0x1ac/0x270 lib/usercopy.c:33
 copy_to_user include/linux/uaccess.h:209 [inline]
 compat_drm_wait_vblank+0x36f/0x450 drivers/gpu/drm/drm_ioc32.c:866
 drm_compat_ioctl+0x3f6/0x590 drivers/gpu/drm/drm_ioc32.c:995
 __do_compat_sys_ioctl fs/ioctl.c:842 [inline]
 __se_compat_sys_ioctl+0x53d/0x1100 fs/ioctl.c:793
 __ia32_compat_sys_ioctl+0x4a/0x70 fs/ioctl.c:793
 do_syscall_32_irqs_on arch/x86/entry/common.c:79 [inline]
 __do_fast_syscall_32+0x102/0x160 arch/x86/entry/common.c:141
 do_fast_syscall_32+0x6a/0xc0 arch/x86/entry/common.c:166
 do_SYSENTER_32+0x73/0x90 arch/x86/entry/common.c:209
 entry_SYSENTER_compat_after_hwframe+0x4d/0x5c
RIP: 0023:0xf7f5f549
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:00000000f55595fc EFLAGS: 00000296 ORIG_RAX: 0000000000000036
RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00000000c018643a
RDX: 0000000020000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000

Uninit was stored to memory at:
 kmsan_save_stack_with_flags mm/kmsan/kmsan.c:121 [inline]
 kmsan_internal_chain_origin+0xad/0x130 mm/kmsan/kmsan.c:289
 __msan_chain_origin+0x57/0xa0 mm/kmsan/kmsan_instr.c:147
 compat_drm_wait_vblank+0x43c/0x450 drivers/gpu/drm/drm_ioc32.c:865
 drm_compat_ioctl+0x3f6/0x590 drivers/gpu/drm/drm_ioc32.c:995
 __do_compat_sys_ioctl fs/ioctl.c:842 [inline]
 __se_compat_sys_ioctl+0x53d/0x1100 fs/ioctl.c:793
 __ia32_compat_sys_ioctl+0x4a/0x70 fs/ioctl.c:793
 do_syscall_32_irqs_on arch/x86/entry/common.c:79 [inline]
 __do_fast_syscall_32+0x102/0x160 arch/x86/entry/common.c:141
 do_fast_syscall_32+0x6a/0xc0 arch/x86/entry/common.c:166
 do_SYSENTER_32+0x73/0x90 arch/x86/entry/common.c:209
 entry_SYSENTER_compat_after_hwframe+0x4d/0x5c

Local variable ----req@compat_drm_wait_vblank created at:
 compat_drm_wait_vblank+0x7b/0x450 drivers/gpu/drm/drm_ioc32.c:849
 compat_drm_wait_vblank+0x7b/0x450 drivers/gpu/drm/drm_ioc32.c:849

Bytes 12-15 of 16 are uninitialized
Memory access of size 16 starts at ffff88811557fc98
Data copied to user address 0000000020000000
=====================================================

Crashes (37):
Manager Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Title
ci-upstream-kmsan-gce-386 2021/04/08 00:07 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/07 05:37 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/07 05:37 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/04 07:04 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/03 08:09 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/03 08:09 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/03 08:08 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/02 08:03 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/01 06:28 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/01 05:05 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/01 05:05 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/01 05:05 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/01 04:49 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/01 04:49 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/01 04:49 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/04/01 04:39 https://github.com/google/kmsan.git master 29ad81a1074a 6a81331a .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/28 07:09 https://github.com/google/kmsan.git master 29ad81a1074a a8529b82 .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/28 00:13 https://github.com/google/kmsan.git master 29ad81a1074a a8529b82 .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/27 23:04 https://github.com/google/kmsan.git master 29ad81a1074a a8529b82 .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/26 10:01 https://github.com/google/kmsan.git master 29ad81a1074a 6a383ecf .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/24 22:03 https://github.com/google/kmsan.git master 29ad81a1074a 607e3baf .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/20 21:35 https://github.com/google/kmsan.git master 29ad81a1074a 17810eae .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/17 01:34 https://github.com/google/kmsan.git master 29ad81a1074a fdb2bb2c .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/17 01:34 https://github.com/google/kmsan.git master 29ad81a1074a fdb2bb2c .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/13 07:58 https://github.com/google/kmsan.git master 29ad81a1074a 429d8a6b .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/13 07:53 https://github.com/google/kmsan.git master 29ad81a1074a 429d8a6b .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/13 05:42 https://github.com/google/kmsan.git master 29ad81a1074a 429d8a6b .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/13 05:41 https://github.com/google/kmsan.git master 29ad81a1074a 429d8a6b .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/07 08:13 https://github.com/google/kmsan.git master 29ad81a1074a e4b4d570 .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/07 08:13 https://github.com/google/kmsan.git master 29ad81a1074a e4b4d570 .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/03/07 08:12 https://github.com/google/kmsan.git master 29ad81a1074a e4b4d570 .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/02/28 21:25 https://github.com/google/kmsan.git master 29ad81a1074a 4c37c133 .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/02/28 11:30 https://github.com/google/kmsan.git master 29ad81a1074a 4c37c133 .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/02/27 06:56 https://github.com/google/kmsan.git master 29ad81a1074a 4c37c133 .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/02/23 23:09 https://github.com/google/kmsan.git master 29ad81a1074a fcc6d71b .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/02/23 05:04 https://github.com/google/kmsan.git master 29ad81a1074a c26fb06b .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
ci-upstream-kmsan-gce-386 2021/02/21 06:10 https://github.com/google/kmsan.git master 29ad81a1074a 3e5ed8b4 .config log report info KMSAN: kernel-infoleak in compat_drm_wait_vblank
* Struck through repros no longer work on HEAD.