Re: [syzbot] [kvm?] KMSAN: uninit-value in em_ret

From: Sean Christopherson
Date: Wed Feb 21 2024 - 09:03:40 EST


On Wed, Feb 21, 2024, syzbot wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: b401b621758e Linux 6.8-rc5
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=15cd41c2180000
> kernel config: https://syzkaller.appspot.com/x/.config?x=1b015d567058472
> dashboard link: https://syzkaller.appspot.com/bug?extid=ee5eb98a07d2c1fb30df
> compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
>
> Unfortunately, I don't have any reproducer for this issue yet.
>
> Downloadable assets:
> disk image: https://storage.googleapis.com/syzbot-assets/c32ff3cbe7ed/disk-b401b621.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/17621a870a21/vmlinux-b401b621.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/b06ad3ca55ee/bzImage-b401b621.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+ee5eb98a07d2c1fb30df@xxxxxxxxxxxxxxxxxxxxxxxxx
>
> =====================================================
> BUG: KMSAN: uninit-value in assign_eip_near arch/x86/kvm/emulate.c:829 [inline]
> BUG: KMSAN: uninit-value in em_ret+0x124/0x130 arch/x86/kvm/emulate.c:2238
> assign_eip_near arch/x86/kvm/emulate.c:829 [inline]
> em_ret+0x124/0x130 arch/x86/kvm/emulate.c:2238
> x86_emulate_insn+0x1d87/0x5880 arch/x86/kvm/emulate.c:5292
> x86_emulate_instruction+0x13c9/0x30a0 arch/x86/kvm/x86.c:9171
> kvm_emulate_instruction arch/x86/kvm/x86.c:9251 [inline]
> complete_emulated_io arch/x86/kvm/x86.c:11208 [inline]
> complete_emulated_mmio+0x70b/0x8b0 arch/x86/kvm/x86.c:11268
> kvm_arch_vcpu_ioctl_run+0x1837/0xb890 arch/x86/kvm/x86.c:11380
> kvm_vcpu_ioctl+0xbfc/0x1770 arch/x86/kvm/../../../virt/kvm/kvm_main.c:4441
> vfs_ioctl fs/ioctl.c:51 [inline]
> __do_sys_ioctl fs/ioctl.c:871 [inline]
> __se_sys_ioctl+0x225/0x410 fs/ioctl.c:857
> __x64_sys_ioctl+0x96/0xe0 fs/ioctl.c:857
> do_syscall_x64 arch/x86/entry/common.c:52 [inline]
> do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83
> entry_SYSCALL_64_after_hwframe+0x63/0x6b
>
> Local variable eip created at:
> em_ret+0x37/0x130 arch/x86/kvm/emulate.c:2234
> x86_emulate_insn+0x1d87/0x5880 arch/x86/kvm/emulate.c:5292
>
> CPU: 0 PID: 5793 Comm: syz-executor.0 Not tainted 6.8.0-rc5-syzkaller #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/25/2024
> =====================================================

#syz fix: KVM: x86: Clean up partially uninitialized integer in emulate_pop()