Re: KMSAN: kernel-infoleak in raw_ioctl

From: Dmitry Vyukov
Date: Mon Aug 10 2020 - 05:00:23 EST


On Mon, Aug 10, 2020 at 9:46 AM Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
>
> On Sun, Aug 09, 2020 at 09:27:18AM -0700, syzbot wrote:
> > Hello,
> >
> > syzbot found the following issue on:
> >
> > HEAD commit: ce8056d1 wip: changed copy_from_user where instrumented
> > git tree: https://github.com/google/kmsan.git master
> > console output: https://syzkaller.appspot.com/x/log.txt?x=141eb8b2900000
> > kernel config: https://syzkaller.appspot.com/x/.config?x=3afe005fb99591f
> > dashboard link: https://syzkaller.appspot.com/bug?extid=a7e220df5a81d1ab400e
> > compiler: clang version 10.0.0 (https://github.com/llvm/llvm-project/ c2443155a0fb245c8f17f2c1c72b6ea391e86e81)
> > userspace arch: i386
> >
> > Unfortunately, I don't have any reproducer for this issue yet.
>
> The irony of a kernel module written for syzbot testing, causing syzbot
> reports....

The raw gadget and KCOV are also kernel code and subject to all the
same rules as any other kernel code from syzkaller point of view.

But I think the root cause of this bug is the origin of the uninitialized-ness:

Local variable ----buf.i@asix_get_phy_addr created at:
asix_read_cmd drivers/net/usb/asix_common.c:312 [inline]
asix_read_phy_addr drivers/net/usb/asix_common.c:295 [inline]
asix_get_phy_addr+0x4d/0x290 drivers/net/usb/asix_common.c:314
asix_read_cmd drivers/net/usb/asix_common.c:312 [inline]
asix_read_phy_addr drivers/net/usb/asix_common.c:295 [inline]
asix_get_phy_addr+0x4d/0x290 drivers/net/usb/asix_common.c:314