Skip to content

Commit

Permalink
USB: serial: safe_serial: fix information leak in completion handler
Browse files Browse the repository at this point in the history
Add missing sanity check to the bulk-in completion handler to avoid an
integer underflow that could be triggered by a malicious device.

This avoids leaking up to 56 bytes from after the URB transfer buffer to
user space.

Fixes: 1da177e ("Linux-2.6.12-rc2")
Cc: stable <[email protected]>
Signed-off-by: Johan Hovold <[email protected]>
  • Loading branch information
jhovold committed Mar 8, 2017
1 parent 654b404 commit 8c76d7c
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions drivers/usb/serial/safe_serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,11 @@ static void safe_process_read_urb(struct urb *urb)
if (!safe)
goto out;

if (length < 2) {
dev_err(&port->dev, "malformed packet\n");
return;
}

fcs = fcs_compute10(data, length, CRC10_INITFCS);
if (fcs) {
dev_err(&port->dev, "%s - bad CRC %x\n", __func__, fcs);
Expand Down

0 comments on commit 8c76d7c

Please sign in to comment.