CyberRota Analysis
AI-GeneratedThe vulnerability affects the Linux kernel's USB gadget printer driver, specifically in the `printer_read()` function, which can enter an infinite loop if the user buffer is unwritable and no bytes are successfully copied. This can lead to denial of service conditions, as the system may become unresponsive due to the endless read loop. Organizations utilizing Linux systems with USB gadget printer functionality should prioritize addressing this issue to prevent potential service disruptions.
Original NVD Description
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.