CVE-2026-68369 PUBLISHED

usb: gadget: printer: fix infinite loop in printer_read()

Assigner: Linux
Reserved: 30.07.2026 Published: 10.08.2026 Updated: 10.08.2026

In the Linux kernel, the following vulnerability has been resolved:

usb: gadget: printer: fix infinite loop in printer_read()

printer_read() uses the same variable for the requested copy size and the number of bytes actually copied to user space. copy_to_user() returns the number of bytes not copied, so when it fails to copy anything, the computed copied length becomes zero.

In that case len, buf, current_rx_bytes and current_rx_buf are left unchanged. If RX data is available and the user buffer remains unwritable, the read loop can repeat indefinitely.

Track the copied length separately and return -EFAULT, or the number of bytes already copied, if an iteration makes no progress.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from b185f01a9ab7af586133be2555298e960237359b to 994afccfdcceb73be33f69a8a8ea71e260c9eca5 (excl.)
  • affected from b185f01a9ab7af586133be2555298e960237359b to e03597ad9494b500344076589aeaa6c6d2d381d3 (excl.)
  • affected from b185f01a9ab7af586133be2555298e960237359b to 4cde0b38cc0cb8b7dc17295801015148de37d1d2 (excl.)
  • affected from b185f01a9ab7af586133be2555298e960237359b to e41bbbbb1740ce4d7270ab1cdeca13892d6a8d2e (excl.)
  • affected from b185f01a9ab7af586133be2555298e960237359b to c2e819be6a5c7f34344926b4bd7e3dfca58cf48a (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 4.1 is affected
  • unaffected from 0 to 4.1 (excl.)
  • unaffected from 6.6.148 to 6.6.* (incl.)
  • unaffected from 6.12.101 to 6.12.* (incl.)
  • unaffected from 6.18.42 to 6.18.* (incl.)
  • unaffected from 7.1.6 to 7.1.* (incl.)
  • unaffected from 7.2-rc5 to * (incl.)

References