Re: [syzbot] [usb?] KMSAN: kernel-usb-infoleak in usbtmc_write

From: Edward Adam Davis
Date: Thu Sep 05 2024 - 10:22:06 EST


clear save user data buf before copying data from user.

#syz test

diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c
index e9ddaa9b580d..19bfe25e675c 100644
--- a/drivers/usb/class/usbtmc.c
+++ b/drivers/usb/class/usbtmc.c
@@ -1586,6 +1586,7 @@ static ssize_t usbtmc_write(struct file *filp, const char __user *buf,
aligned = (transfersize + (USBTMC_HEADER_SIZE + 3)) & ~3;
}

+ memset(&buffer[USBTMC_HEADER_SIZE], 0, aligned - USBTMC_HEADER_SIZE);
if (copy_from_user(&buffer[USBTMC_HEADER_SIZE], buf, transfersize)) {
retval = -EFAULT;
up(&file_data->limit_write_sem);