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.
Published: 2026-08-10
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

In the Linux kernel’s USB gadget printer driver, the printer_read function mistakenly reuses the same variable for the requested copy size and the number of bytes actually copied into user space. copy_to_user returns the amount of data that could not be transferred; when no data is copied, the variable becomes zero. In that scenario, the loop control variables remain unchanged, and if more received data is available while the user buffer cannot be written, the read loop continues forever. This behavior results in a hang of the reading process, effectively denying service for any application attempting to read from the USB gadget printer device.

Affected Systems

The flaw resides in the generic Linux kernel code, so any operating system distribution that ships with a kernel containing the buggy printer_read implementation is affected. Because the commit that fixes this issue was introduced in the mainline, all kernels prior to that patch are vulnerable. Users of binaries that rely on the USB gadget printer gadget—such as embedded Linux systems or devices exposing a virtual printer interface—are at risk when running an unpatched kernel.

Risk and Exploitability

The CVSS score of 5.5 indicates moderate severity, and the EPSS score of <1% suggests that exploitation is currently unlikely. Based on the description, it is inferred that a local user with permission to open the USB gadget printer device can trigger the flaw. The vulnerability can be triggered by repeatedly issuing read operations when the device’s receive buffer remains unwritable; this causes an infinite loop, consuming kernel resources and potentially rendering the process or the device unresponsive. The fact that the vulnerability is not listed in the CISA KEV catalog indicates no widely observed exploitation yet. The primary impact is denial of service for affected processes, which may worsen overall system responsiveness if many such processes accumulate.

Generated by OpenCVE AI on August 13, 2026 at 06:53 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the kernel to a version that includes the commit fixing the infinite loop in printer_read (e.g., commit cde0b38).
  • If a kernel upgrade is not feasible, disable the USB gadget printer driver by unloading or blacklisting the module.
  • If the device must remain operational temporarily, restart any process that performs the read or reset the USB gadget printer interface after a failed read to escape the loop.

Generated by OpenCVE AI on August 13, 2026 at 06:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4745-1 linux-6.12 security update
History

Wed, 19 Aug 2026 16:45:00 +0000


Thu, 13 Aug 2026 04:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-909

Wed, 12 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-835
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Mon, 10 Aug 2026 17:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-909

Mon, 10 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
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.
Title usb: gadget: printer: fix infinite loop in printer_read()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-19T16:34:28.812Z

Reserved: 2026-07-30T09:28:09.386Z

Link: CVE-2026-68369

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-10T13:20:29.670

Modified: 2026-08-19T17:20:46.477

Link: CVE-2026-68369

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-10T12:03:46Z

Links: CVE-2026-68369 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T07:00:12Z

Weaknesses
  • CWE-835

    Loop with Unreachable Exit Condition ('Infinite Loop')