linux/drivers/usb
Johan Hovold c32dfec6c1 USB: serial: cp210x: fix dropped characters with CP2102
Some CP2102 do not support event-insertion mode but return no error when
attempting to enable it.

This means that any event escape characters in the input stream will not
be escaped by the device and consequently regular data may be
interpreted as escape sequences and be removed from the stream by the
driver.

The reporter's device has batch number DCL00X etched into it and as
discovered by the SHA2017 Badge team, counterfeit devices with that
marking can be detected by sending malformed vendor requests. [1][2]

Tests confirm that the possibly counterfeit CP2102 returns a single byte
in response to a malformed two-byte part-number request, while an
original CP2102 returns two bytes. Assume that every CP2102 that behaves
this way also does not support event-insertion mode (e.g. cannot report
parity errors).

[1] https://mobile.twitter.com/sha2017badge/status/1167902087289532418
[2] https://hackaday.com/2017/08/14/hands-on-with-the-shacamp-2017-badge/#comment-3903376

Reported-by: Malte Di Donato <malte@neo-soft.org>
Tested-by: Malte Di Donato <malte@neo-soft.org>
Fixes: a7207e9835 ("USB: serial: cp210x: add support for line-status events")
Cc: stable@vger.kernel.org	# 5.9
Link: https://lore.kernel.org/r/20210922113100.20888-1-johan@kernel.org
Signed-off-by: Johan Hovold <johan@kernel.org>
2021-09-23 10:44:46 +02:00
..
atm usb: atm: cxacru: Fix typo in comment 2021-05-21 20:05:40 +02:00
c67x00 usb/c67x00: Replace tasklet with work 2021-01-26 18:36:37 +01:00
cdns3 usb: cdnsp: fix the wrong mult value for HS isoc or intr 2021-08-13 13:05:50 +02:00
chipidea usb: chipidea: host: fix port index underflow and UBSAN complains 2021-08-21 13:15:25 +08:00
class Merge 5.14-rc5 into tty-next 2021-08-09 08:52:46 +02:00
common USB/Thunderbolt patches for 5.15-rc1 2021-09-01 09:59:34 -07:00
core Revert "USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem" 2021-07-21 11:36:34 +02:00
dwc2 usb: dwc2: Fix spelling mistake "was't" -> "wasn't" 2021-08-27 10:29:54 +02:00
dwc3 USB/Thunderbolt patches for 5.15-rc1 2021-09-01 09:59:34 -07:00
early
gadget USB/Thunderbolt patches for 5.15-rc1 2021-09-01 09:59:34 -07:00
host USB/Thunderbolt patches for 5.15-rc1 2021-09-01 09:59:34 -07:00
image
isp1760 usb: isp1760: otg control register access 2021-08-27 16:11:39 +02:00
misc usb: misc: brcmstb-usb-pinmap: add IRQ check 2021-08-13 13:05:50 +02:00
mon
mtu3 usb: mtu3: fix random remote wakeup 2021-08-26 13:41:52 +02:00
musb usb: musb: musb_dsps: request_irq() after initializing musb 2021-08-26 13:22:16 +02:00
phy usb: phy: tahvo: add IRQ check 2021-08-16 18:57:19 +02:00
renesas_usbhs usb: renesas_usbhs: Fix spelling mistake "faile" -> "failed" 2021-08-27 10:29:32 +02:00
roles usb: roles: add helper usb_role_string() 2021-05-27 09:17:18 +02:00
serial USB: serial: cp210x: fix dropped characters with CP2102 2021-09-23 10:44:46 +02:00
storage SCSI misc on 20210902 2021-09-02 15:09:46 -07:00
typec USB/Thunderbolt patches for 5.15-rc1 2021-09-01 09:59:34 -07:00
usbip usbip:vhci_hcd USB port can get stuck in the disabled state 2021-08-26 13:29:27 +02:00
Kconfig usb: remove reference to deleted config STB03xxx 2021-08-18 15:32:19 +02:00
Makefile usb: host: remove line for obsolete config USB_HWA_HCD 2021-08-18 15:32:19 +02:00
usb-skeleton.c