PT-2026-90344 · Linux · Linux
CVE-2026-89628
·
Published
2026-09-11
·
Updated
2026-09-11
None
No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
In the Linux kernel, the following vulnerability has been resolved:
HID: picolcd: clamp eeprom debugfs read to bytes actually received
picolcd debug eeprom read() trusts resp->raw data[2] -- a length byte
supplied by the device in its REPORT EE DATA reply -- clamped only to
the caller's read() count:
ret = resp->raw data[2];
if (ret > s)
ret = s;
if (copy to user(u, resp->raw data+3, ret))It never checks resp->raw size, the number of bytes picolcd raw event()
actually copied into the 64-byte raw data[] of the kmalloc'd struct
picolcd pending. A device (or a spoofed picoLCD) returning a length byte
of 0xff, read with a count >= 255, makes copy to user() read past
raw data[] into adjacent slab memory and return it to userspace through
the debugfs "eeprom" file:
BUG: KASAN: slab-out-of-bounds in copy to user
Read of size 255 ... picolcd debug eeprom read+0x214/0x2f0 [hid picolcd]The debug-dump path in the same file already validates the device length
byte against the received size before trusting it; this read does not.
The file is created S IRUSR (root-only) and a crafted device is needed,
so it is neither unprivileged- nor remotely-triggerable.
Clamp the copy length to resp->raw size - 3 (the payload actually
received, minus the 3-byte header), floored at 0 for short replies.
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Linux