Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scsi: qedf: Ensure the copied buf is NUL terminated

Currently, we allocate a count-sized kernel buffer and copy count from
userspace to that buffer. Later, we use kstrtouint on this buffer but we
don't ensure that the string is terminated inside the buffer, this can
lead to OOB read when using kstrtouint. Fix this issue by using
memdup_user_nul instead of memdup_user.

Fixes: 61d8658b4a43 ("scsi: qedf: Add QLogic FastLinQ offload FCoE driver framework.")
Signed-off-by: Bui Quang Minh <minhquangbui99@gmail.com>
Link: https://lore.kernel.org/r/20240424-fix-oob-read-v2-4-f1f1b53a10f4@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Bui Quang Minh and committed by
Martin K. Petersen
d0184a37 13d0cecb

+1 -1
+1 -1
drivers/scsi/qedf/qedf_debugfs.c
··· 170 170 if (!count || *ppos) 171 171 return 0; 172 172 173 - kern_buf = memdup_user(buffer, count); 173 + kern_buf = memdup_user_nul(buffer, count); 174 174 if (IS_ERR(kern_buf)) 175 175 return PTR_ERR(kern_buf); 176 176