HID: usbhid: Eliminate recurrent out-of-bounds bug in usbhid_parse()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 3.3, 3.17, 3.19, 4.2, 4.5, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: HID: usbhid: Eliminate recurrent out-of-bounds bug in usbhid_parse() Update struct hid_descriptor to better reflect the mandatory and optional parts of the HID Descriptor as per USB HID 1.11 specification. Note: the kernel currently does not parse any optional HID class descriptors, only the mandatory report descriptor. Update all references to member element desc[0] to rpt_desc. Add test to verify bLength and bNumDescriptors values are valid. Replace the for loop with direct access to the mandatory HID class descriptor member for the report descriptor. This eliminates the possibility of getting an out-of-bounds fault. Add a warning message if the HID descriptor contains any unsupported optional HID class descriptors.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 3.2.95 · fixed in 3.3; From 3.16.50 · fixed in 3.17; From 3.18.76 · fixed in 3.19; From 4.1.46 · fixed in 4.2; From 4.4.93 · fixed in 4.5; From 4.9.57 · fixed in 4.10; From 4.13.8 · fixed in 4.14
- Linux Linux
4.14
References 8
git.kernel.org
- stable/c/7a6d6b68db128da2078ccd9a751dfa3f75c9cf5b
- stable/c/41827a2dbdd7880df9881506dee13bc88d4230bb
- stable/c/1df80d748f984290c895e843401824215dcfbfb0
- stable/c/a8f842534807985d3a676006d140541b87044345
- stable/c/4fa7831cf0ac71a0a345369d1a6084f2b096e55e
- stable/c/74388368927e9c52a69524af5bbd6c55eb4690de
- stable/c/485e1b741eb838cbe1d6b0e81e5ab62ae6c095cf
- stable/c/fe7f7ac8e0c708446ff017453add769ffc15deed