CVE-2026-53194

USB: serial: kl5kusb105: fix bulk-out buffer overflow

State
Published
Severity
7.8 High
Published
Jun 25, 2026
Updated
Oct 19, 2026
Reserved
Jun 9, 2026

Read the record on cve.org

Description

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

USB: serial: kl5kusb105: fix bulk-out buffer overflow

klsi_105_prepare_write_buffer() is called by the generic write path with the bulk-out buffer and its size (bulk_out_size, 64 bytes). It stores a two-byte length header at the start of the buffer and copies the payload from the write fifo starting at buf + KLSI_HDR_LEN, but passes the full buffer size as the number of bytes to copy:

count = kfifo_out_locked(&port->write_fifo, buf + KLSI_HDR_LEN, size, &port->lock);

When the fifo holds at least size bytes, size bytes are copied starting two bytes into the size-byte buffer, writing KLSI_HDR_LEN bytes past its end. Copy at most size - KLSI_HDR_LEN bytes instead, leaving room for the header as safe_serial already does.

Writing bulk_out_size or more bytes to the tty triggers a slab out-of-bounds write, observed with KASAN by emulating the device with dummy_hcd and raw-gadget:

BUG: KASAN: slab-out-of-bounds in kfifo_copy_out+0x83/0xc0 Write of size 64 at addr ffff888112c62202 by task python3 kfifo_copy_out klsi_105_prepare_write_buffer [kl5kusb105] usb_serial_generic_write_start [usbserial] Allocated by task 139: usb_serial_probe [usbserial] The buggy address is located 2 bytes inside of allocated 64-byte region

The out-of-bounds write no longer occurs with this change applied.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux
3.15.3 MediumCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:Hredhat-SADP

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 60b3013cdaf3fa8a17243ca46b19db3cbe08d943 to before 60af1fd82983c26604102e63a3fcc822c186ccebAffected
  • 60b3013cdaf3fa8a17243ca46b19db3cbe08d943 to before 0a57320f71941d4e0b1307453c9a1f0939afe666Affected
  • 60b3013cdaf3fa8a17243ca46b19db3cbe08d943 to before 14147b7963685957839c76ba8094924e22777d79Affected
  • 60b3013cdaf3fa8a17243ca46b19db3cbe08d943 to before a1288cd700f721c1a119c4f1e8efa234e59caadaAffected
  • 60b3013cdaf3fa8a17243ca46b19db3cbe08d943 to before 70d86e355c564b5510fde61361df014f5476c83eAffected
  • 60b3013cdaf3fa8a17243ca46b19db3cbe08d943 to before 372f33ebed747d91870f57c0a2e62884a870bffaAffected
  • 60b3013cdaf3fa8a17243ca46b19db3cbe08d943 to before bde742b076cbe26ecc89c8c68c76ae076a524d02Affected
  • 60b3013cdaf3fa8a17243ca46b19db3cbe08d943 to before 96d47e40bf9db4a9efd5c8fb53287a508d165f14Affected
LinuxLinux
  • 2.6.35Affected
  • before 2.6.35Not affected
  • 5.10.259 through 5.10.*Not affected
  • 5.15.210 through 5.15.*Not affected
  • 6.1.176 through 6.1.*Not affected
  • 6.6.143 through 6.6.*Not affected
  • 6.12.94 through 6.12.*Not affected
  • 6.18.36 through 6.18.*Not affected
  • 7.0.13 through 7.0.*Not affected
  • 7.1 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.