[PATCH] i40e: fix integer overflow in i40e_dbg_command_write()

From: rivaldihormat-debug

Date: Tue Sep 08 2026 - 11:50:09 EST


The i40e_dbg_command_write() function uses 'count' from user space
in kzalloc(count + 1) without validation. If count = 0xFFFFFFFF,
integer overflow occurs.

An attacker or local user could trigger a buffer overflow or integer
overflow by writing large amounts of data to the debugfs file.

Fix by adding validation:
if (count == 0 || count > PAGE_SIZE) return -EINVAL.

PAGE_SIZE is chosen as a common limit for debugfs writes to prevent
excessive stack/heap allocation.

Signed-off-by: Rifaldi Hormat <rivaldihormat@xxxxxxxxx>
---
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index 0b52509cb14c..74e75504fdda 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -722,6 +722,8 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
int cnt;

/* don't allow partial writes */
+ if (count == 0 || count > PAGE_SIZE)
+ return -EINVAL;
if (*ppos != 0)
return 0;

@@ -1605,6 +1607,8 @@ static ssize_t i40e_dbg_netdev_ops_write(struct file *filp,
int i, cnt;

/* don't allow partial writes */
+ if (count == 0 || count > PAGE_SIZE)
+ return -EINVAL;
if (*ppos != 0)
return 0;

--
2.53.0