CVE-2026-46167: usb: usblp: fix uninitialized heap leak via LPGETSTATUS ioctl

Published May 28, 2026
·
Updated

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

usb: usblp: fix uninitialized heap leak via LPGETSTATUS ioctl

Just like in a previous problem in this driver, usblpctrlmsg() will collapse the usbcontrolmsg() return value to 0/-errno, discarding the actual number of bytes transferred.

Ideally that short command should be detected and error out, but many printers are known to send "incorrect" responses back so we can't just do that.

statusbuf is kmalloc(8) at probe time and never filled before the first LPGETSTATUS ioctl.

usblpreadstatus() requests 1 byte. If a malicious printer responds with zero bytes, statusbuf is one byte of stale kmalloc heap, sign-extended into the local int status, which the LPGETSTATUS path then copytouser()s directly to the ioctl caller.

Fix this all by just zapping out the memory buffer when allocated at probe time. If a later call does a short read, the data will be identical to what the device sent it the last time, so there is no "leak" of information happening.

Affected Software

16 affected componentsFixes available
Linux Linux kernel (usblp driver)
Linux Linux kernel>=2.6.12.1<5.10.258
Linux Linux kernel>=5.11<5.15.209
Linux Linux kernel>=5.16<6.1.175
Linux Linux kernel>=6.2<6.6.140
Linux Linux kernel>=6.7<6.12.88
Linux Linux kernel>=6.13<6.18.30
Linux Linux kernel>=6.19<7.0.7
Linux Linux kernel=2.6.12
Linux Linux kernel=2.6.12-rc2
Linux Linux kernel=2.6.12-rc3
Linux Linux kernel=2.6.12-rc4
Linux Linux kernel=2.6.12-rc5
Linux Linux kernel=7.1-rc1
Linux Linux kernel=7.1-rc2
Microsoft azl3 kernel 6.6.139.1-1<6.6.141.1-1
6.6.141.1-1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 6.6.141.1-1
  2. Configuration

    Apply the resolved fix in the Linux kernel for the usblp uninitialized heap leak via the LPGETSTATUS ioctl so that statusbuf is not left uninitialized (do not copy stale kmalloc heap contents to the ioctl caller; collapse usb_control_msg() return to 0/-errno and discard the number-of-bytes-transferred value as described).

    Linux kernel usblp driver (LPGETSTATUS ioctl) statusbuf initialization before copy_to_user() = Initialize statusbuf (avoid copying uninitialized kmalloc(8) contents to user; ensure correct bytes returned by usb_control_msg are used)

Event History

May 28, 2026
CVE Published
via MITRE·09:36 AM
Data Sourced
via MITRE·09:36 AM
Description
Data Sourced
via NVD·10:16 AM
RemedyDescriptionSeverityWeaknessAffected Software
May 29, 2026
Data Sourced
via Microsoft·08:07 AM
DescriptionSeverityWeakness
Data Sourced
via Microsoft·08:07 AM
Affected Software
Updated
via Microsoft·08:07 AM
DescriptionSeverity

Frequently Asked Questions

1

What is the severity of CVE-2026-46167?

The severity of CVE-2026-46167 is rated at 15.

2

What type of vulnerability is CVE-2026-46167?

CVE-2026-46167 is a heap leak vulnerability in the usblp driver of the Linux kernel.

3

How do I fix CVE-2026-46167?

To fix CVE-2026-46167, ensure that you update the Linux kernel to a patched version that addresses this vulnerability.

4

Which software is affected by CVE-2026-46167?

CVE-2026-46167 affects the Linux kernel, specifically the usblp driver.

5

Can CVE-2026-46167 lead to data exposure?

Yes, CVE-2026-46167 can potentially lead to data exposure due to uninitialized heap leaks.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203