linux/drivers/hid
Marc Zyngier a47b8511d9 HID: core: Sanitize event code and type when mapping input
commit 35556bed83 upstream.

When calling into hid_map_usage(), the passed event code is
blindly stored as is, even if it doesn't fit in the associated bitmap.

This event code can come from a variety of sources, including devices
masquerading as input devices, only a bit more "programmable".

Instead of taking the event code at face value, check that it actually
fits the corresponding bitmap, and if it doesn't:
- spit out a warning so that we know which device is acting up
- NULLify the bitmap pointer so that we catch unexpected uses

Code paths that can make use of untrusted inputs can now check
that the mapping was indeed correct and bail out if not.

Cc: stable@vger.kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-09-09 19:04:22 +02:00
..
i2c-hid HID: i2c-hid: Always sleep 60ms after I2C_HID_PWR_ON commands 2020-09-03 11:24:26 +02:00
intel-ish-hid HID: intel-ish-hid: fixes incorrect error handling 2019-12-05 09:20:24 +01:00
usbhid HID: hiddev: Fix slab-out-of-bounds write in hiddev_ioctl_usage() 2020-09-03 11:24:31 +02:00
hid-a4tech.c HID: input: fix a4tech horizontal wheel custom usage 2019-08-29 08:28:40 +02:00
hid-accutouch.c
hid-alps.c HID: alps: support devices with report id 2 2020-07-29 10:16:51 +02:00
hid-apple.c HID: apple: Disable Fn-key key-re-mapping on clone keyboards 2020-07-29 10:16:52 +02:00
hid-appleir.c treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
hid-asus.c Merge branch 'for-4.17/upstream' into for-linus 2018-04-05 13:28:46 +02:00
hid-aureal.c
hid-axff.c HID: Fix assumption that devices have inputs 2019-11-06 13:06:18 +01:00
hid-belkin.c
hid-betopff.c
hid-cherry.c
hid-chicony.c
hid-cmedia.c
hid-core.c HID: core: Correctly handle ReportSize being zero 2020-09-09 19:04:22 +02:00
hid-corsair.c HID: corsair: Add K70 Vengeance and K70 RAPIDFIRE to 2018-02-16 13:38:16 +01:00
hid-cougar.c HID: cougar: Add support for the Cougar 500k Gaming Keyboard 2018-07-23 11:35:05 +02:00
hid-cp2112.c HID: cp2112: prevent sleeping function called from invalid context 2019-09-10 10:33:49 +01:00
hid-cypress.c
hid-debug.c HID: debug: fix race condition with between rdesc_show() and device removal 2019-05-08 07:21:45 +02:00
hid-dr.c HID: Fix assumption that devices have inputs 2019-11-06 13:06:18 +01:00
hid-elan.c HID: elan: Add support for touchpad on the Toshiba Click Mini L9W 2018-07-17 15:25:40 +02:00
hid-elecom.c HID: elecom: add support for EX-G M-XT4DRBK trackball 2018-03-06 15:15:47 +01:00
hid-elo.c HID: elo: clear BTN_LEFT mapping 2017-11-24 14:40:23 +01:00
hid-emsff.c HID: Fix assumption that devices have inputs 2019-11-06 13:06:18 +01:00
hid-ezkey.c
hid-gaff.c HID: Fix assumption that devices have inputs 2019-11-06 13:06:18 +01:00
hid-gembird.c
hid-generic.c HID: generic: create one input report per application type 2018-04-26 14:17:31 +02:00
hid-gfrm.c HID: generic: create one input report per application type 2018-04-26 14:17:31 +02:00
hid-google-hammer.c HID: google: add moonball USB id 2020-03-20 11:55:59 +01:00
hid-gt683r.c
hid-gyration.c
hid-holtek-kbd.c HID: holtek: test for sanity of intfdata 2019-08-25 10:47:48 +02:00
hid-holtek-mouse.c
hid-holtekff.c HID: Fix assumption that devices have inputs 2019-11-06 13:06:18 +01:00
hid-hyperv.c HID: hyperv: Use in-place iterator API in the channel callback 2019-11-06 13:05:46 +01:00
hid-icade.c
hid-ids.h HID: quirks: add NOGET quirk for Logitech GROUP 2020-09-03 11:24:21 +02:00
hid-input.c HID: core: Sanitize event code and type when mapping input 2020-09-09 19:04:22 +02:00
hid-ite.c HID: ite: Only bind to keyboard USB interface on Acer SW5-012 keyboard dock 2020-03-05 16:42:18 +01:00
hid-jabra.c HID: Add special driver for Jabra devices 2017-11-21 12:54:58 +01:00
hid-kensington.c
hid-keytouch.c
hid-kye.c
hid-lcpower.c
hid-led.c
hid-lenovo.c HID: lenovo: Add checks to fix of_led_classdev_register 2019-02-12 19:47:19 +01:00
hid-lg.c HID: logitech: Fix general protection fault caused by Logitech driver 2019-10-01 08:26:01 +02:00
hid-lg.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hid-lg2ff.c HID: Fix assumption that devices have inputs 2019-11-06 13:06:18 +01:00
hid-lg3ff.c HID: Fix assumption that devices have inputs 2019-11-06 13:06:18 +01:00
hid-lg4ff.c HID: Fix assumption that devices have inputs 2019-11-06 13:06:18 +01:00
hid-lg4ff.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hid-lgff.c HID: Fix assumption that devices have inputs 2019-11-06 13:06:18 +01:00
hid-logitech-dj.c
hid-logitech-hidpp.c HID: logitech-hidpp: Silence intermittent get_battery_capacity errors 2020-01-04 19:12:59 +01:00
hid-magicmouse.c HID: magicmouse: do not set up autorepeat 2020-07-22 09:32:08 +02:00
hid-mf.c
hid-microsoft.c HID: microsoft: support the Surface Dial 2018-07-17 15:33:47 +02:00
hid-monterey.c
hid-multitouch.c HID: core: Sanitize event code and type when mapping input 2020-09-09 19:04:22 +02:00
hid-nti.c
hid-ntrig.c HID: hid-ntrig: add error handling for sysfs_create_group 2018-06-25 15:16:11 +02:00
hid-ortek.c HID: ortek: add one more buggy device 2017-07-24 17:38:21 +02:00
hid-penmount.c
hid-petalynx.c
hid-picolcd_backlight.c
hid-picolcd_cir.c media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_* 2017-08-20 10:02:48 -04:00
hid-picolcd_core.c
hid-picolcd_debugfs.c
hid-picolcd_fb.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
hid-picolcd_lcd.c
hid-picolcd_leds.c
hid-picolcd.h
hid-pl.c
hid-plantronics.c HID: hid-plantronics: Re-resend Update to map button for PTT products 2018-05-16 11:06:40 +02:00
hid-primax.c
hid-prodikeys.c HID: prodikeys: Fix general protection fault during probe 2019-10-01 08:26:01 +02:00
hid-quirks.c HID: quirks: add NOGET quirk for Logitech GROUP 2020-09-03 11:24:21 +02:00
hid-redragon.c HID: redragon: fix num lock and caps lock LEDs 2018-06-25 15:23:40 +02:00
hid-retrode.c HID: Add driver for Retrode2 joypad adapter 2017-06-22 14:44:11 +02:00
hid-rmi.c HID: rmi: Check that the RMI_STARTED bit is set before unregistering the RMI transport device 2020-01-04 19:13:00 +01:00
hid-roccat-arvo.c
hid-roccat-arvo.h
hid-roccat-common.c
hid-roccat-common.h
hid-roccat-isku.c
hid-roccat-isku.h
hid-roccat-kone.c
hid-roccat-kone.h
hid-roccat-koneplus.c
hid-roccat-koneplus.h
hid-roccat-konepure.c
hid-roccat-kovaplus.c HID: roccat: prevent an out of bounds read in kovaplus_profile_activated() 2018-01-23 15:46:58 +01:00
hid-roccat-kovaplus.h
hid-roccat-lua.c
hid-roccat-lua.h
hid-roccat-pyra.c
hid-roccat-pyra.h
hid-roccat-ryos.c
hid-roccat-savu.c
hid-roccat-savu.h
hid-roccat.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
hid-saitek.c HID: hid-saitek: Add device ID for RAT 7 Contagion 2018-08-30 10:58:44 +02:00
hid-samsung.c
hid-sensor-custom.c iio/hid-sensors: Fix IIO_CHAN_INFO_RAW returning wrong values for signed numbers 2018-12-05 19:32:13 +01:00
hid-sensor-hub.c iio/hid-sensors: Fix IIO_CHAN_INFO_RAW returning wrong values for signed numbers 2018-12-05 19:32:13 +01:00
hid-sjoy.c
hid-sony.c HID: sony: Fix for broken buttons on DS3 USB dongles 2020-06-07 13:17:53 +02:00
hid-speedlink.c
hid-steam.c HID: steam: fixes race in handling device list. 2020-07-29 10:16:52 +02:00
hid-steelseries.c
hid-sunplus.c
hid-tivo.c
hid-tmff.c HID: Fix assumption that devices have inputs 2019-11-06 13:06:18 +01:00
hid-topseed.c
hid-twinhan.c
hid-uclogic.c HID: core: remove the need for HID_QUIRK_NO_EMPTY_INPUT 2018-03-23 15:44:57 +01:00
hid-udraw-ps3.c
hid-waltop.c
hid-wiimote-core.c HID: wiimote: add support for Guitar-Hero devices 2018-06-25 15:26:06 +02:00
hid-wiimote-debug.c
hid-wiimote-modules.c HID: wiimote: add support for Guitar-Hero devices 2018-06-25 15:26:06 +02:00
hid-wiimote.h HID: wiimote: add support for Guitar-Hero devices 2018-06-25 15:26:06 +02:00
hid-xinmo.c
hid-zpff.c HID: Fix assumption that devices have inputs 2019-11-06 13:06:18 +01:00
hid-zydacron.c
hidraw.c HID: hidraw, uhid: Always report EPOLLOUT 2020-01-17 19:46:55 +01:00
Kconfig HID: cougar: Add support for the Cougar 500k Gaming Keyboard 2018-07-23 11:35:05 +02:00
Makefile HID: cougar: Add support for the Cougar 500k Gaming Keyboard 2018-07-23 11:35:05 +02:00
uhid.c HID: hidraw, uhid: Always report EPOLLOUT 2020-01-17 19:46:55 +01:00
wacom_sys.c HID: wacom: Read HID_DG_CONTACTMAX directly for non-generic devices 2020-05-14 07:57:20 +02:00
wacom_wac.c HID: wacom: generic: Treat serial number and related fields as unsigned 2019-11-12 19:20:38 +01:00
wacom_wac.h HID: wacom: generic: only switch the mode on devices with LEDs 2019-07-26 09:14:27 +02:00
wacom.h HID: wacom: generic: Treat serial number and related fields as unsigned 2019-11-12 19:20:38 +01:00