Re: [syzbot] KMSAN: uninit-value in kvm_irq_delivery_to_apic_fast
From: Vitaly Kuznetsov
Date: Tue Jun 28 2022 - 09:01:19 EST
syzbot <syzbot+d6caa905917d353f0d07@xxxxxxxxxxxxxxxxxxxxxxxxx> writes:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: 4b28366af7d9 x86: kmsan: enable KMSAN builds for x86
> git tree: https://github.com/google/kmsan.git master
> console+strace: https://syzkaller.appspot.com/x/log.txt?x=126a4b60080000
> kernel config: https://syzkaller.appspot.com/x/.config?x=d14e10a167d1c585
> dashboard link: https://syzkaller.appspot.com/bug?extid=d6caa905917d353f0d07
> compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project.git 610139d2d9ce6746b3c617fb3e2f7886272d26ff), GNU ld (GNU Binutils for Debian) 2.35.2
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=14d596c4080000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=10bcf08ff00000
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+d6caa905917d353f0d07@xxxxxxxxxxxxxxxxxxxxxxxxx
>
> L1TF CPU bug present and SMT on, data leak possible. See CVE-2018-3646 and https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/l1tf.html for details.
> =====================================================
> BUG: KMSAN: uninit-value in kvm_apic_set_irq arch/x86/kvm/lapic.c:634 [inline]
> BUG: KMSAN: uninit-value in kvm_irq_delivery_to_apic_fast+0x7a7/0x990 arch/x86/kvm/lapic.c:1044
> kvm_apic_set_irq arch/x86/kvm/lapic.c:634 [inline]
> kvm_irq_delivery_to_apic_fast+0x7a7/0x990 arch/x86/kvm/lapic.c:1044
> kvm_irq_delivery_to_apic+0xdb/0xe40 arch/x86/kvm/irq_comm.c:54
> kvm_pv_kick_cpu_op+0xd1/0x100 arch/x86/kvm/x86.c:9155
> kvm_emulate_hypercall+0xee7/0x1340 arch/x86/kvm/x86.c:9285
...
According to the syz repro (and AFAIU), kvm_pv_kick_cpu_op()
doesn't set 'irq->vector' which is not really needed for APIC_DM_REMRD
but we still reference it e.g. in trace_kvm_apic_accept_irq().
I'll can send a patch (if noone beats me to it).
Thanks for the report!
--
Vitaly