CVE-2026-46151CWE-401

CVE-2026-46151

Medium · published May 28, 2026

CVSS v3.1
5.5
EPSS
0%
Percentile
5.6
In the wild
Unconfirmed
What it is

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

usb: usblp: fix heap leak in IEEE 1284 device ID via short response

usblp_ctrl_msg() collapses the usb_control_msg() return value to

0/-errno, discarding the actual number of bytes transferred. A broken

printer can complete the GET_DEVICE_ID control transfer short and the

driver has no way to know.

usblp_cache_device_id_string() reads the 2-byte big-endian length prefix

from the response and trusts it (clamped only to the buffer bounds).

The buffer is kmalloc(1024) at probe time. A device that sends exactly

two bytes (e.g. 0x03 0xFF, claiming a 1023-byte ID) leaves

device_id_string[2..1022] holding stale kmalloc heap.

That stale data is then exposed:

- via the ieee1284_id sysfs attribute (sprintf("%s", buf+2), truncated

at the first NUL in the stale heap), and

- via the IOCNR_GET_DEVICE_ID ioctl, which copy_to_user()s the full

claimed length regardless of NULs, up to 1021 bytes of uninitialized

heap, with the leak size chosen by the device.

Fix this up by just zapping the buffer with zeros before each request

sent to the device.

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00166 · 5.6th percentile
Weakness
CWE-401 · Missing Release of Memory after Effective Lifetime
Published
2026-05-28T14:16Z
Affected products (14)
ProductVersionsFixed in
linux/linux_kernel≥ 2.6.12.1, < 5.10.2585.10.258
linux/linux_kernel≥ 5.11, < 5.15.2095.15.209
linux/linux_kernel≥ 5.16, < 6.1.1756.1.175
linux/linux_kernel≥ 6.2, < 6.6.1406.6.140
linux/linux_kernel≥ 6.7, < 6.12.886.12.88
linux/linux_kernel≥ 6.13, < 6.18.306.18.30
linux/linux_kernel≥ 6.19, < 7.0.77.0.7
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (9)
EPSS history
Timeline
  • 28 MAY 09:36Z
    usb: usblp: fix heap leak in IEEE 1284 device ID via short response
    cvelistv5