]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
Input: xpad - fix out-of-bounds access for Share button
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 27 Apr 2026 04:09:33 +0000 (21:09 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 27 Apr 2026 04:13:05 +0000 (21:13 -0700)
commit6cdc46b38cf146ce81d4831b6472dbf7731849a2
tree57c12acf25f142c4a8861d6faa99ad5461c01c25
parent2905281cbda52ec9df540113b35b835feb5fafd3
Input: xpad - fix out-of-bounds access for Share button

xpadone_process_packet() receives len directly from urb->actual_length
and uses it to index the share-button byte at data[len - 18] or
data[len - 26]. Since both len and data[0] are under the device's
control, a broken controller can send a GIP_CMD_INPUT packet with
actual_length < 18 (e.g. 5 bytes) and reach this code path, causing
accesses beyond the actual array.

Fix this by calculating the offset and checking bounds against the
packet length.

Reported-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Fixes: 4ef46367073b ("Input: xpad - fix Share button on Xbox One controllers")
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/joystick/xpad.c