HID: picolcd: clamp eeprom debugfs read to bytes actually received

Summary

CVECVE-2026-89628
StatePUBLISHED
AssignerLinux
Source PriorityCVE Program / NVD first with legacy fallback
Published2026-09-11 20:19:48 UTC
Updated2026-09-14 13:19:16 UTC
DescriptionIn 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.

Risk And Classification

EPSS: 0.002090000 probability, percentile 0.111260000 (date 2026-09-13)

Vendor Declared Affected Products

SourceVendorProductVersionPlatforms
CNA Linux Linux affected 9bbf2b98ba11d00bd73e3254e15cfe17ccaff6ba 1a02056c2bf7ef9b5fd05ee6913aeeadb703c443 git Not specified
CNA Linux Linux affected 9bbf2b98ba11d00bd73e3254e15cfe17ccaff6ba 65daa322f1021d8206f8032c4cd4c0cb2d26c7c3 git Not specified
CNA Linux Linux affected 9bbf2b98ba11d00bd73e3254e15cfe17ccaff6ba 8dc662af019158690c470edd2e2857657f700abb git Not specified
CNA Linux Linux affected 9bbf2b98ba11d00bd73e3254e15cfe17ccaff6ba 4daf432c94a42e7be6aa10b012b33af5ed9bc118 git Not specified
CNA Linux Linux affected 9bbf2b98ba11d00bd73e3254e15cfe17ccaff6ba a3e6e8d7198a9f3861861520a38b673684a1062b git Not specified
CNA Linux Linux affected 9bbf2b98ba11d00bd73e3254e15cfe17ccaff6ba 471f4a939c66d1d44aece2321807abf609fc9098 git Not specified
CNA Linux Linux affected 9bbf2b98ba11d00bd73e3254e15cfe17ccaff6ba 699a3c8b56e168ca19d12722f3f5ef1d6f4b1d84 git Not specified
CNA Linux Linux affected 9bbf2b98ba11d00bd73e3254e15cfe17ccaff6ba e9c667395ac1f8024f623250b32bae4c7af9caa0 git Not specified
CNA Linux Linux affected 2.6.35 Not specified
CNA Linux Linux unaffected 2.6.35 semver Not specified
CNA Linux Linux unaffected 5.10.270 5.10.* semver Not specified
CNA Linux Linux unaffected 5.15.221 5.15.* semver Not specified
CNA Linux Linux unaffected 6.1.188 6.1.* semver Not specified
CNA Linux Linux unaffected 6.6.157 6.6.* semver Not specified
CNA Linux Linux unaffected 6.12.109 6.12.* semver Not specified
CNA Linux Linux unaffected 6.18.50 6.18.* semver Not specified
CNA Linux Linux unaffected 7.2.4 7.2.* semver Not specified
CNA Linux Linux unaffected 7.3-rc1 * original_commit_for_fix Not specified

References

ReferenceSourceLinkTags
git.kernel.org/stable/c/a3e6e8d7198a9f3861861520a38b673684a1062b 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/4daf432c94a42e7be6aa10b012b33af5ed9bc118 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/1a02056c2bf7ef9b5fd05ee6913aeeadb703c443 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/699a3c8b56e168ca19d12722f3f5ef1d6f4b1d84 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/65daa322f1021d8206f8032c4cd4c0cb2d26c7c3 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/e9c667395ac1f8024f623250b32bae4c7af9caa0 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/8dc662af019158690c470edd2e2857657f700abb 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/471f4a939c66d1d44aece2321807abf609fc9098 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
CVE Program record CVE.ORG www.cve.org canonical
NVD vulnerability detail NVD nvd.nist.gov canonical, analysis

© CVE.report 2026

Use of this information constitutes acceptance for use in an AS IS condition. There are NO warranties, implied or otherwise, with regard to this information or its use. Any use of this information is at the user's risk. It is the responsibility of user to evaluate the accuracy, completeness or usefulness of any information, opinion, advice or other content. EACH USER WILL BE SOLELY RESPONSIBLE FOR ANY consequences of his or her direct or indirect use of this web site. ALL WARRANTIES OF ANY KIND ARE EXPRESSLY DISCLAIMED. This site will NOT BE LIABLE FOR ANY DIRECT, INDIRECT or any other kind of loss.

CVE, CWE, and OVAL are registred trademarks of The MITRE Corporation and the authoritative source of CVE content is MITRE's CVE web site. This site includes MITRE data granted under the following license.

Free CVE JSON API cve.report/api

CVE.report and Source URL Uptime Status status.cve.report