linux/drivers/s390/net
Hidayath Khan d141f087b1 s390/qeth: validate user buffer length in SNMP and ARP query ioctls
qeth_snmp_command() and qeth_l3_arp_query() allocate a buffer sized by
a user-supplied length (udata_len) without checking a lower bound, then
set udata_offset to a fixed non-zero value and pass both to a reply
callback. The callback bounds-checks the copy with

        if ((udata_len - udata_offset) < len)

Both fields are u32, so a udata_len smaller than udata_offset makes the
subtraction wrap and the check pass, and the following memcpy() writes
past the allocation. A udata_len of 0 also yields ZERO_SIZE_PTR from
kzalloc(), which the existing NULL check does not catch.

Reject buffers smaller than udata_offset before allocating, so the
callback subtraction can no longer underflow.

Fixes: 4a71df5004 ("qeth: new qeth device driver")
Cc: stable@vger.kernel.org
Reviewed-by: Alexandra Winter <wintera@linux.ibm.com>
Signed-off-by: Hidayath Khan <hidayath@linux.ibm.com>
Reviewed-by: Joe Damato <joe@dama.to>
Link: https://patch.msgid.link/20260730142216.218309-1-hidayath@linux.ibm.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-08-03 18:31:05 -07:00
..
ctcm_dbug.c s390/ctcm: Convert sprintf/snprintf to scnprintf 2023-06-23 11:55:55 +02:00
ctcm_dbug.h
ctcm_fsms.c Networking changes for 6.19. 2025-12-03 17:24:33 -08:00
ctcm_fsms.h
ctcm_main.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ctcm_main.h s390/ctcm: Convert sprintf/snprintf to scnprintf 2023-06-23 11:55:55 +02:00
ctcm_mpc.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ctcm_mpc.h
ctcm_sysfs.c s390: Remove KMSG_COMPONENT macro 2025-11-24 11:45:21 +01:00
fsm.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
fsm.h
ism_drv.c s390/ism: Drop superfluous zeros in pci_device_id array 2026-05-26 15:39:44 +02:00
ism.h dibs: Move event handling to dibs layer 2025-09-23 11:13:22 +02:00
Kconfig dibs: Move event handling to dibs layer 2025-09-23 11:13:22 +02:00
Makefile s390/net: Remove NETIUCV device driver 2025-07-16 17:53:40 -07:00
qeth_core_main.c s390/qeth: validate user buffer length in SNMP and ARP query ioctls 2026-08-03 18:31:05 -07:00
qeth_core_mpc.c s390/qeth: Handle ambiguous OSA RCs in s390dbf 2025-11-17 20:02:02 -08:00
qeth_core_mpc.h s390/qeth: Handle ambiguous OSA RCs in s390dbf 2025-11-17 20:02:02 -08:00
qeth_core_sys.c s390: Remove KMSG_COMPONENT macro 2025-11-24 11:45:21 +01:00
qeth_core.h inet: introduce dst_rtable() helper 2024-04-30 18:32:38 -07:00
qeth_ethtool.c s390: Remove KMSG_COMPONENT macro 2025-11-24 11:45:21 +01:00
qeth_l2_main.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
qeth_l2_sys.c s390/qeth: Convert sysfs sprintf to sysfs_emit 2023-02-10 19:49:53 -08:00
qeth_l2.h
qeth_l3_main.c s390/qeth: validate user buffer length in SNMP and ARP query ioctls 2026-08-03 18:31:05 -07:00
qeth_l3_sys.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
qeth_l3.h
smsgiucv_app.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
smsgiucv.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
smsgiucv.h