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).
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.
**** CentOS-Kernel linux-3.10.0-229.14.1.el7 (drivers/usb/serial/visor.c)
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 */
612 return 0;
Reproducer can be found in original bug report:
Proposed upstream patch:
Red Hat would like to thank Ralf Spenneberg of OpenSource Security for reporting this issue.
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/.
Created kernel tracking bugs for this issue:
Affects: fedora-all [bug 1297517]
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.
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.
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.