Greg Kroah-Hartman
a0e0a58502
USB: fix out-of-bounds in usb_set_configuration
...
commit bd7a3fe770 upstream.
Andrey Konovalov reported a possible out-of-bounds problem for a USB interface
association descriptor. He writes:
It seems there's no proper size check of a USB_DT_INTERFACE_ASSOCIATION
descriptor. It's only checked that the size is >= 2 in
usb_parse_configuration(), so find_iad() might do out-of-bounds access
to intf_assoc->bInterfaceCount.
And he's right, we don't check for crazy descriptors of this type very well, so
resolve this problem. Yet another issue found by syzkaller...
Reported-by: Andrey Konovalov <andreyknvl@google.com >
Tested-by: Andrey Konovalov <andreyknvl@google.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
[bwh: Backported to 3.2: adjust filename]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk >
2017-11-11 13:34:40 +00:00
..
2011-11-04 18:02:25 -07:00
2016-11-20 01:01:25 +00:00
2017-03-16 02:18:56 +00:00
2014-11-05 20:27:42 +00:00
2012-08-19 18:15:34 +01:00
2017-06-05 21:13:48 +01:00
2012-08-19 18:15:33 +01:00
2017-11-11 13:34:28 +00:00
2012-09-19 15:04:40 +01:00
2016-02-13 10:34:04 +00:00
2017-08-26 02:14:03 +01:00
2011-11-09 15:07:40 +01:00
2011-11-06 19:44:47 -08:00
2016-08-22 22:37:11 +01:00
2017-11-11 13:34:40 +00:00
2015-11-27 12:48:21 +00:00
2012-07-12 04:32:18 +01:00
2014-11-05 20:27:43 +00:00
2016-04-01 01:54:32 +01:00
2013-03-06 03:24:19 +00:00
2014-01-03 04:33:21 +00:00
2013-09-10 01:57:27 +01:00
2014-04-09 02:20:44 +01:00
2015-05-09 23:16:35 +01:00
2014-12-14 16:23:47 +00:00
2015-08-12 16:33:19 +02:00
2017-02-23 03:51:02 +00:00
2013-07-27 05:34:20 +01:00
2011-12-19 11:41:40 +01:00
2012-03-12 12:31:21 -07:00
2015-05-09 23:16:12 +01:00
2014-12-14 16:23:48 +00:00
2014-12-14 16:23:49 +00:00
2014-12-14 16:23:49 +00:00
2016-04-01 01:54:32 +01:00
2013-03-06 03:23:52 +00:00
2017-03-16 02:18:29 +00:00
2011-11-07 10:13:52 -08:00
2017-10-12 15:27:08 +01:00
2017-10-12 15:27:22 +01:00
2012-01-25 16:13:22 -08:00
2016-02-13 10:34:12 +00:00
2015-01-01 01:27:50 +00:00
2011-11-07 23:54:53 +01:00
2017-11-11 13:34:33 +00:00
2015-02-20 00:49:37 +00:00
2011-12-16 08:49:57 -08:00
2011-11-06 17:12:03 -08:00
2011-11-06 19:44:47 -08:00
2013-05-30 14:35:10 +01:00
2016-01-22 21:40:04 +00:00
2016-08-22 22:37:17 +01:00
2011-11-04 18:37:23 -04:00
2012-02-29 16:31:24 -08:00
2013-11-28 14:01:59 +00:00
2012-04-02 09:52:45 -07:00
2017-02-23 03:51:05 +00:00
2013-01-03 03:32:56 +00:00
2016-11-20 01:01:43 +00:00
2015-10-13 03:46:05 +01:00
2015-05-09 23:16:15 +01:00
2013-09-10 01:57:20 +01:00
2014-06-09 13:29:03 +01:00
2011-11-06 19:44:47 -08:00
2012-05-31 00:43:15 +01:00
2016-06-15 21:28:14 +01:00
2013-10-26 21:06:04 +01:00
2012-10-10 03:31:16 +01:00
2013-01-03 03:32:57 +00:00
2016-02-27 14:28:41 +00:00
2016-06-15 21:28:12 +01:00
2011-11-08 09:28:27 +02:00
2011-11-23 11:33:07 +01:00
2016-11-20 01:01:28 +00:00
2013-10-26 21:05:57 +01:00
2013-03-06 03:23:57 +00:00
2013-05-30 14:35:13 +01:00
2012-11-16 16:46:52 +00:00
2013-08-02 22:14:47 +02:00
2012-10-30 23:26:34 +00:00
2011-11-14 01:08:49 -05:00
2012-08-10 00:11:14 +01:00
2013-05-13 15:02:30 +01:00
2016-05-01 00:05:25 +02:00
2014-07-11 13:33:34 +01:00
2015-11-27 12:48:21 +00:00
2015-08-07 00:32:02 +01:00
2014-11-05 20:27:43 +00:00
2012-07-25 04:11:19 +01:00
2015-02-20 00:49:30 +00:00
2012-06-10 14:42:10 +01:00
2015-05-09 23:16:12 +01:00
2012-04-13 08:33:48 -07:00
2014-12-14 16:23:52 +00:00
2013-03-06 03:24:27 +00:00
2012-09-19 15:05:16 +01:00
2017-09-15 18:30:44 +01:00
2013-04-25 20:25:38 +01:00
2012-09-19 15:04:59 +01:00
2014-06-09 13:29:03 +01:00
2013-04-25 20:25:50 +01:00
2011-12-26 13:27:44 +02:00
2011-12-22 02:02:20 -05:00
2016-04-01 01:54:35 +01:00
2017-03-16 02:18:59 +00:00
2017-02-23 03:51:04 +00:00
2011-12-12 22:06:55 -08:00
2011-11-04 17:22:14 -07:00
2014-07-11 13:33:53 +01:00
2014-08-06 18:07:37 +01:00
2012-01-25 16:13:23 -08:00
2012-10-10 03:30:45 +01:00
2014-09-13 23:41:50 +01:00
2016-08-22 22:37:15 +01:00
2013-09-10 01:57:37 +01:00
2017-07-02 17:12:47 +01:00
2013-03-06 03:24:11 +00:00
2012-08-02 14:37:31 +01:00
2014-05-18 14:58:06 +01:00
2014-09-13 23:41:41 +01:00
2016-11-20 01:01:42 +00:00
2016-11-20 01:01:42 +00:00
2014-01-03 04:33:21 +00:00
2012-09-19 15:04:26 +01:00
2013-07-27 05:34:29 +01:00
2014-01-03 04:33:33 +00:00
2017-03-16 02:18:42 +00:00
2012-06-10 14:42:03 +01:00
2016-04-01 01:54:31 +01:00
2015-08-12 16:33:16 +02:00
2015-08-07 00:32:09 +01:00
2013-03-20 15:03:41 +00:00
2015-08-07 00:32:16 +01:00
2011-11-04 22:28:13 +01:00
2013-01-16 01:13:13 +00:00
2014-01-03 04:33:24 +00:00
2012-01-25 16:13:17 -08:00
2012-02-06 09:41:06 -08:00
2016-05-01 00:05:15 +02:00
2017-11-11 13:34:31 +00:00
2016-02-27 14:28:49 +00:00
2011-11-22 16:37:01 -05:00
2012-02-13 11:16:55 -08:00
2011-11-17 21:39:33 +01:00
2011-11-28 22:14:55 +01:00
2016-04-01 01:54:37 +01:00
2016-11-20 01:01:44 +00:00
2013-03-06 03:23:57 +00:00
2013-04-25 20:25:36 +01:00
2016-02-13 10:34:10 +00:00
2012-02-20 12:46:16 -08:00
2013-03-06 03:24:22 +00:00
2012-12-06 11:20:18 +00:00
2017-09-15 18:30:57 +01:00
2013-03-06 03:23:45 +00:00
2014-01-03 04:33:32 +00:00
2013-06-29 04:06:40 +01:00
2013-10-26 21:05:59 +01:00
2012-03-12 12:31:24 -07:00
2014-07-11 13:33:35 +01:00
2015-02-20 00:49:35 +00:00
2012-04-02 09:53:10 -07:00
2012-11-16 16:46:52 +00:00
2017-10-12 15:27:22 +01:00
2012-01-03 16:12:19 -08:00
2015-10-13 03:46:08 +01:00
2012-05-11 13:14:50 +01:00
2013-03-20 15:03:33 +00:00
2011-11-11 16:16:25 +09:00
2011-11-15 12:13:44 -08:00
2016-11-20 01:01:28 +00:00
2011-11-11 16:11:41 +09:00
2011-11-11 16:45:35 +09:00
2012-01-25 16:13:59 -08:00
2011-12-09 07:50:27 -08:00
2011-11-29 11:59:50 +00:00
2012-02-29 16:31:23 -08:00
2017-09-15 18:30:50 +01:00
2014-08-06 18:07:42 +01:00
2013-01-16 01:13:25 +00:00
2013-06-29 04:06:39 +01:00
2013-04-25 20:25:36 +01:00
2012-07-12 04:31:59 +01:00
2014-12-14 16:23:49 +00:00
2012-01-25 16:13:59 -08:00
2013-06-19 02:17:01 +01:00
2015-02-20 00:49:37 +00:00
2013-02-06 04:33:57 +00:00
2013-04-10 03:20:11 +01:00
2015-02-20 00:49:34 +00:00
2013-11-28 14:02:03 +00:00
2016-04-01 01:54:32 +01:00
2016-06-15 21:28:11 +01:00
2012-09-12 03:36:54 +01:00
2012-01-25 16:13:29 -08:00
2011-11-24 13:04:48 +10:30
2013-05-30 14:35:03 +01:00
2011-11-24 13:04:47 +10:30
2015-02-20 00:49:34 +00:00
2011-11-16 12:13:08 -05:00
2013-03-06 03:23:52 +00:00
2013-09-10 01:57:28 +01:00
2012-03-19 09:02:34 -07:00
2015-02-20 00:49:35 +00:00
2012-10-10 03:31:25 +01:00