In the Linux kernel, the following vulnerability has been resolved:
can: peak_usb: add bounds check for USB channel index
The channel control index ctrlidx is derived from rx->len which comes directly from a device USB payload. The mask 0x0f allows values 0-15, but the array size of usbif->dev[] is only 2. Values 2-15 cause heap out-of-bounds read, eventually causing kernel panic in the IRQ context.
Add bounds checking for ctrlidx before the array access in both pcanusbprohandlecanmsg() and pcanusbprohandle_error().