Bug 1296466 (CVE-2015-7566) - CVE-2015-7566 kernel: Crash on invalid USB device descriptors in visor driver
Summary: CVE-2015-7566 kernel: Crash on invalid USB device descriptors in visor driver
Status: CLOSED WONTFIX
Alias: CVE-2015-7566
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard: impact=low,public=20160111,reported=2...
Keywords: Security
Depends On: 1283371 1297517
Blocks: 1296470
TreeView+ depends on / blocked
 
Reported: 2016-01-07 10:36 UTC by Adam Mariš
Modified: 2019-06-08 20:55 UTC (History)
27 users (show)

(edit)
A flaw was found in the way the Linux kernel visor driver handles certain invalid USB device descriptors. The driver assumes that the device always has at least one bulk OUT endpoint. By using a specially crafted USB device (without a bulk OUT endpoint), an unprivileged user with physical access could trigger a kernel NULL-pointer dereference and cause a system panic (denial of service).
Clone Of:
(edit)
Last Closed: 2016-03-11 13:51:29 UTC


Attachments (Terms of Use)

Description Adam Mariš 2016-01-07 10:36:38 UTC
A local kernel crash on invalid USB device requiring the visor driver was reported. The clie_5_attach function of the visor driver, which is called during the driver initialization process, expects an OUT-Bulk-Endpoint. Due to an incomplete sanity check, the visor driver tries to dereference null-pointers, which results in crash. 

Vulnerable code:


**** CentOS-Kernel linux-3.10.0-229.14.1.el7 (drivers/usb/serial/visor.c)
        ...
607
608	pipe = usb_sndbulkpipe(serial->dev, port->bulk_out_endpointAddress);
609	for (j = 0; j < ARRAY_SIZE(port->write_urbs); ++j)
610		port->write_urbs[j]->pipe = pipe;  /* if there is no configured OUT-bulk-endpoint, the kernel tries to dereference null-pointers */
611
612	return 0;
613 }
        ...
****

Reproducer can be found in original bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=1283371

Proposed upstream patch:
http://marc.info/?l=linux-usb&m=145260786729359&w=2

Upstream commit:
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=cb3232138e37129e88240a98a1d2aba2187ff57c

Bugtraq:
http://seclists.org/bugtraq/2016/Mar/58

Comment 1 Vladis Dronov 2016-01-08 14:55:38 UTC
Acknowledgements:

Red Hat would like to thank Ralf Spenneberg of OpenSource Security for reporting this issue.

Comment 2 Vladis Dronov 2016-01-08 14:58:00 UTC
Statement:

This issue does not affect the Linux kernel packages as shipped with Red Hat Enterprise Linux 5, 6 as the code with the flaw is not present in the products listed.

This issue affects the Linux kernel packages as shipped with Red Hat Enterprise Linux 7, and MRG-2. This has been rated as having Low security impact and is not currently planned to be addressed in future updates. For additional information, refer to the Red Hat Enterprise Linux Life Cycle: https://access.redhat.com/support/policy/updates/errata/.

Comment 3 Vladis Dronov 2016-01-11 18:28:21 UTC
Created kernel tracking bugs for this issue:

Affects: fedora-all [bug 1297517]

Comment 4 Fedora Update System 2016-01-20 21:51:58 UTC
kernel-4.3.3-301.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.

Comment 5 Fedora Update System 2016-01-26 18:22:53 UTC
kernel-4.3.3-303.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.

Comment 6 Fedora Update System 2016-02-01 06:24:34 UTC
kernel-4.3.4-200.fc22 has been pushed to the Fedora 22 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.