Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

HID: steelseries: validate output report details

A HID device could send a malicious output report that would cause the
steelseries HID driver to write beyond the output report allocation
during initialization, causing a heap overflow:

[ 167.981534] usb 1-1: New USB device found, idVendor=1038, idProduct=1410
...
[ 182.050547] BUG kmalloc-256 (Tainted: G W ): Redzone overwritten

CVE-2013-2891

Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: stable@vger.kernel.org
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

authored by

Kees Cook and committed by
Jiri Kosina
41df7f6d 9446edb9

+5
+5
drivers/hid/hid-steelseries.c
··· 249 249 goto err_free; 250 250 } 251 251 252 + if (!hid_validate_values(hdev, HID_OUTPUT_REPORT, 0, 0, 16)) { 253 + ret = -ENODEV; 254 + goto err_free; 255 + } 256 + 252 257 ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT); 253 258 if (ret) { 254 259 hid_err(hdev, "hw start failed\n");