One Small Step to Harden USB Over IP on Linux
The USB over IP kernel driver allows a server system to export its USB devices to a client system over an IP network via USB over IP protocol. Exportable USB devices include physical devices and software entities that are created on the server using the USB gadget sub-system. This article will cover a major bug related to USB over IP in the Linux kernel that was recently uncovered; it created some significant security issues but was resolved with help from the kernel community.
The Basics of the USB Over IP Protocol
There are two USB over IP server kernel modules:
- usbip-host (stub driver): A stub USB device driver that can be bound to physical USB devices to export them over the network.
- usbip-vudc: A virtual USB Device Controller that exports a USB device created with the USB Gadget Subsystem.
There is one USB over IP client kernel module: