CVE-2021-46906: HID: usbhid: fix info leak in hid_submit_ctrl
In the Linux kernel, the following vulnerability has been resolved:
HID: usbhid: fix info leak in hid_submit_ctrl
In hid_submit_ctrl(), the way of calculating the report length doesn't
take into account that report->size can be zero. When running the
syzkaller reproducer, a report of size 0 causes hid_submit_ctrl) to
calculate transfer_buffer_length as 16384. When this urb is passed to
the usb core layer, KMSAN reports an info leak of 16384 bytes.
To fix this, first modify hid_report_len() to account for the zero
report size case by using DIV_ROUND_UP for the division. Then, call it
from hid_submit_ctrl().
Security readout for executives and security teams
Plain-English summary
CVE-2021-46906 is a Linux kernel information leak in the USB HID driver path. A zero-size HID report can cause the kernel to handle an unexpectedly large 16,384-byte transfer buffer, exposing uninitialized memory according to KMSAN findings. Public sources do not provide a CVSS score or confirmed exploitation.
Executive priority
Treat this as a patch-management item, not an emergency, unless your environment permits untrusted USB HID device attachment on sensitive Linux systems. Severity evidence is incomplete, so prioritize based on kernel exposure and device-trust model.
Technical view
The issue is in hid_submit_ctrl() in Linux usbhid. Report length calculation failed to handle report->size equal to zero, allowing transfer_buffer_length to become 16384. The fix updates hid_report_len() to use DIV_ROUND_UP and calls it from hid_submit_ctrl().
Likely exposure
Exposure is most relevant to Linux systems running affected kernel versions with USB HID support. The bundle lists affected Linux kernel lines including 2.6.12 through 5.13-related stable lines, but distro backports may change exposure.
Exploitation context
The source cites a syzkaller reproducer and KMSAN-detected information leak. There is no KEV listing and no cited evidence of active exploitation, public weaponization, remote reachability, required privileges, or reliable exploitability.
Researcher notes
The key condition is report->size equal to zero causing incorrect length handling in hid_submit_ctrl(). The public record names syzkaller and KMSAN but does not provide exploitability boundaries, leak contents, or attacker prerequisites.
Mitigation direction
Update to a vendor kernel containing the referenced Linux stable fixes.
Check Linux distribution advisories for backported fixes and package status.
Prioritize systems accepting untrusted USB HID devices if patching is delayed.
Avoid claiming remediation complete until the vendor kernel includes the fix.
Validation and detection
Inventory deployed Linux kernel versions and vendor package builds.
Confirm whether affected systems use USB HID support or load usbhid.
Map each kernel build to vendor advisory or referenced stable commit status.
Track exceptions where distro backports obscure upstream version comparisons.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2021-46906 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.