]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
scsi: qedf: Ensure the copied buf is NUL terminated
authorBui Quang Minh <minhquangbui99@gmail.com>
Wed, 24 Apr 2024 14:44:21 +0000 (21:44 +0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Jun 2024 11:28:36 +0000 (13:28 +0200)
[ Upstream commit d0184a375ee797eb657d74861ba0935b6e405c62 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/scsi/qedf/qedf_debugfs.c

index b0a28a6a9c64aabef0dedf824b5d7b09eae9d4d1..41e7fab99013c0f9d29628b7329baf4f54756e1d 100644 (file)
@@ -172,7 +172,7 @@ qedf_dbg_debug_cmd_write(struct file *filp, const char __user *buffer,
        if (!count || *ppos)
                return 0;
 
-       kern_buf = memdup_user(buffer, count);
+       kern_buf = memdup_user_nul(buffer, count);
        if (IS_ERR(kern_buf))
                return PTR_ERR(kern_buf);