]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
usb: typec: fix potential out of bounds in ucsi_ccg_update_set_new_cam_cmd()
authorDan Carpenter <dan.carpenter@linaro.org>
Mon, 4 Nov 2024 17:16:42 +0000 (20:16 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Nov 2024 12:13:41 +0000 (13:13 +0100)
commit8f47984b35f3be0cfc652c2ca358d5768ea3456b
treea49a7dc8c7c724dddcee6322e19f08dfefb32390
parentd9e65d461a9de037e7c9d584776d025cfce6d86d
usb: typec: fix potential out of bounds in ucsi_ccg_update_set_new_cam_cmd()

commit 7dd08a0b4193087976db6b3ee7807de7e8316f96 upstream.

The "*cmd" variable can be controlled by the user via debugfs.  That means
"new_cam" can be as high as 255 while the size of the uc->updated[] array
is UCSI_MAX_ALTMODES (30).

The call tree is:
ucsi_cmd() // val comes from simple_attr_write_xsigned()
-> ucsi_send_command()
   -> ucsi_send_command_common()
      -> ucsi_run_command() // calls ucsi->ops->sync_control()
         -> ucsi_ccg_sync_control()

Fixes: 170a6726d0e2 ("usb: typec: ucsi: add support for separate DP altmode devices")
Cc: stable <stable@kernel.org>
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/325102b3-eaa8-4918-a947-22aca1146586@stanley.mountain
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/ucsi/ucsi_ccg.c