Skip to content

Commit 9c6ba45

Browse files
Josh Boyerdtor
authored andcommitted
Input: powermate - fix oops with malicious USB descriptors
The powermate driver expects at least one valid USB endpoint in its probe function. If given malicious descriptors that specify 0 for the number of endpoints, it will crash. Validate the number of endpoints on the interface before using them. The full report for this issue can be found here: http://seclists.org/bugtraq/2016/Mar/85 Reported-by: Ralf Spenneberg <[email protected]> Cc: stable <[email protected]> Signed-off-by: Josh Boyer <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
1 parent 9979c1c commit 9c6ba45

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/input/misc/powermate.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,9 @@ static int powermate_probe(struct usb_interface *intf, const struct usb_device_i
307307
int error = -ENOMEM;
308308

309309
interface = intf->cur_altsetting;
310+
if (interface->desc.bNumEndpoints < 1)
311+
return -EINVAL;
312+
310313
endpoint = &interface->endpoint[0].desc;
311314
if (!usb_endpoint_is_int_in(endpoint))
312315
return -EIO;

0 commit comments

Comments
 (0)