CVE-2016-3139: Other (NVD-CWE-Other)
value: The wacom_probe function in drivers/input/tablet/wacom_sys.c in the Linux kernel before 3.17 allows physically proximate attackers to cause a denial of service (NULL pointer dereference and system crash) via a crafted endpoints value in a USB device descriptor.
CWE description: NVD is only using a subset of CWE for mapping instead of the entire CWE, and the weakness type is not covered by that subset.
CVSS v3 base score: 4.6
Published: 2016-04-27T17:59Z
Repository: https://github.com/torvalds/linux
Language: Other
Files changed: drivers/hid/Kconfig, drivers/hid/Makefile, drivers/input/tablet/Kconfig, drivers/input/tablet/Makefile
Commit date: 2014-07-25 18:55:38 -0700
Commit message: Input: wacom - move the USB (now hid) Wacom driver in drivers/hid

wacom.ko is now a full HID driver, we have to move it into the proper
subdirectory: drivers/hid.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Diff: diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
index 5e79c6ad914f3..64366f1feb17d 100644
--- a/drivers/hid/Kconfig
+++ b/drivers/hid/Kconfig
@@ -753,10 +753,23 @@ config HID_WACOM
 	depends on LEDS_CLASS
 	select POWER_SUPPLY
 	---help---
 	Support for Wacom Graphire Bluetooth and Intuos4 WL tablets.
 
+config HID_USB_WACOM
+	tristate "Wacom Intuos/Graphire tablet support (USB)"
+	depends on HID
+	select POWER_SUPPLY
+	select NEW_LEDS
+	select LEDS_CLASS
+	help
+	  Say Y here if you want to use the USB version of the Wacom Intuos
+	  or Graphire tablet.
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called wacom.
+
 config HID_WIIMOTE
 	tristate "Nintendo Wii / Wii U peripherals"
 	depends on HID
 	depends on LEDS_CLASS
 	select POWER_SUPPLY
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
index a6fa6baf368e4..55b69acdb680a 100644
--- a/drivers/hid/Makefile
+++ b/drivers/hid/Makefile
@@ -114,10 +114,13 @@ obj-$(CONFIG_HID_TWINHAN)	+= hid-twinhan.o
 obj-$(CONFIG_HID_UCLOGIC)	+= hid-uclogic.o
 obj-$(CONFIG_HID_XINMO)		+= hid-xinmo.o
 obj-$(CONFIG_HID_ZEROPLUS)	+= hid-zpff.o
 obj-$(CONFIG_HID_ZYDACRON)	+= hid-zydacron.o
 obj-$(CONFIG_HID_WACOM)		+= hid-wacom.o
+
+wacom-objs			:= wacom_wac.o wacom_sys.o
+obj-$(CONFIG_HID_USB_WACOM)	+= wacom.o
 obj-$(CONFIG_HID_WALTOP)	+= hid-waltop.o
 obj-$(CONFIG_HID_WIIMOTE)	+= hid-wiimote.o
 obj-$(CONFIG_HID_SENSOR_HUB)	+= hid-sensor-hub.o
 
 obj-$(CONFIG_USB_HID)		+= usbhid/
diff --git a/drivers/input/tablet/wacom.h b/drivers/hid/wacom.h
similarity index 100%
rename from drivers/input/tablet/wacom.h
rename to drivers/hid/wacom.h
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/hid/wacom_sys.c
similarity index 100%
rename from drivers/input/tablet/wacom_sys.c
rename to drivers/hid/wacom_sys.c
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/hid/wacom_wac.c
similarity index 100%
rename from drivers/input/tablet/wacom_wac.c
rename to drivers/hid/wacom_wac.c
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/hid/wacom_wac.h
similarity index 100%
rename from drivers/input/tablet/wacom_wac.h
rename to drivers/hid/wacom_wac.h
diff --git a/drivers/input/tablet/Kconfig b/drivers/input/tablet/Kconfig
index bed7cbf84cfd5..cd9c79e0a11b0 100644
--- a/drivers/input/tablet/Kconfig
+++ b/drivers/input/tablet/Kconfig
@@ -71,22 +71,6 @@ config TABLET_USB_KBTAB
 	  (CONFIG_INPUT_EVDEV) as well.
 
 	  To compile this driver as a module, choose M here: the
 	  module will be called kbtab.
 
-config TABLET_USB_WACOM
-	tristate "Wacom Intuos/Graphire tablet support (USB)"
-	depends on USB_ARCH_HAS_HCD
-	select POWER_SUPPLY
-	select USB
-	select NEW_LEDS
-	select LEDS_CLASS
-	help
-	  Say Y here if you want to use the USB version of the Wacom Intuos
-	  or Graphire tablet.  Make sure to say Y to "Mouse support"
-	  (CONFIG_INPUT_MOUSEDEV) and/or "Event interface support"
-	  (CONFIG_INPUT_EVDEV) as well.
-
-	  To compile this driver as a module, choose M here: the
-	  module will be called wacom.
-
 endif
diff --git a/drivers/input/tablet/Makefile b/drivers/input/tablet/Makefile
index 3f6c25220638c..cc3bc17d5b087 100644
--- a/drivers/input/tablet/Makefile
+++ b/drivers/input/tablet/Makefile
@@ -1,13 +1,10 @@
 #
 # Makefile for the tablet drivers
 #
 
-# Multipart objects.
-wacom-objs	:= wacom_wac.o wacom_sys.o
 
 obj-$(CONFIG_TABLET_USB_ACECAD)	+= acecad.o
 obj-$(CONFIG_TABLET_USB_AIPTEK)	+= aiptek.o
 obj-$(CONFIG_TABLET_USB_GTCO)	+= gtco.o
 obj-$(CONFIG_TABLET_USB_HANWANG) += hanwang.o
 obj-$(CONFIG_TABLET_USB_KBTAB)	+= kbtab.o
-obj-$(CONFIG_TABLET_USB_WACOM)	+= wacom.o

Vulnerable code: config TABLET_USB_WACOM
	tristate "Wacom Intuos/Graphire tablet support (USB)"
	depends on USB_ARCH_HAS_HCD
	select POWER_SUPPLY
	select USB
	select NEW_LEDS
	select LEDS_CLASS
	help
	  Say Y here if you want to use the USB version of the Wacom Intuos
	  or Graphire tablet.  Make sure to say Y to "Mouse support"
	  (CONFIG_INPUT_MOUSEDEV) and/or "Event interface support"
	  (CONFIG_INPUT_EVDEV) as well.

	  To compile this driver as a module, choose M here: the
	  module will be called wacom.

# Multipart objects.
wacom-objs	:= wacom_wac.o wacom_sys.o
obj-$(CONFIG_TABLET_USB_WACOM)	+= wacom.o
Fixed code: config HID_USB_WACOM
	tristate "Wacom Intuos/Graphire tablet support (USB)"
	depends on HID
	select POWER_SUPPLY
	select NEW_LEDS
	select LEDS_CLASS
	help
	  Say Y here if you want to use the USB version of the Wacom Intuos
	  or Graphire tablet.

	  To compile this driver as a module, choose M here: the
	  module will be called wacom.


wacom-objs			:= wacom_wac.o wacom_sys.o
obj-$(CONFIG_HID_USB_WACOM)	+= wacom.o