]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
scsi: target: target_core_configfs: Add length check to avoid buffer overflow
authorWang Haoran <haoranwangsec@gmail.com>
Sat, 20 Sep 2025 07:44:41 +0000 (15:44 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Oct 2025 09:56:21 +0000 (11:56 +0200)
commite73fe0eefac3e15bf88fb5b4afae4c76215ee4d4
treeeccf9169eb8813f91f844539d4b29c668d8ecfbf
parent89d26b9d32ff024f3afa8851f718e0dd6206c4ca
scsi: target: target_core_configfs: Add length check to avoid buffer overflow

commit 27e06650a5eafe832a90fd2604f0c5e920857fae upstream.

A buffer overflow arises from the usage of snprintf to write into the
buffer "buf" in target_lu_gp_members_show function located in
/drivers/target/target_core_configfs.c. This buffer is allocated with
size LU_GROUP_NAME_BUF (256 bytes).

snprintf(...) formats multiple strings into buf with the HBA name
(hba->hba_group.cg_item), a slash character, a devicename (dev->
dev_group.cg_item) and a newline character, the total formatted string
length may exceed the buffer size of 256 bytes.

Since snprintf() returns the total number of bytes that would have been
written (the length of %s/%sn ), this value may exceed the buffer length
(256 bytes) passed to memcpy(), this will ultimately cause function
memcpy reporting a buffer overflow error.

An additional check of the return value of snprintf() can avoid this
buffer overflow.

Reported-by: Wang Haoran <haoranwangsec@gmail.com>
Reported-by: ziiiro <yuanmingbuaa@gmail.com>
Signed-off-by: Wang Haoran <haoranwangsec@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/target/target_core_configfs.c