HID: core: Fix OOB read in hid_get_report for numbered reports
- 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 5.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.97, and 3 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
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: HID: core: Fix OOB read in hid_get_report for numbered reports When a caller passes a size of 0 to hid_report_raw_event() for a numbered report, the function originally called hid_get_report() before performing any size validation. Inside hid_get_report(), if the report is numbered (report_enum->numbered is true), it unconditionally dereferences data[0] to extract the report ID. With a size of 0, this results in an out-of-bounds read or kernel panic. Fix this by moving the numbered report size validation check before the call to hid_get_report(), ensuring that size is at least 1 before dereferencing the data pointer.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 59bfdb41a34cf5d6af1c637348714c2b5a6ca676 · fixed in f8896b684e246f3f00f45ba2b6803ae59b9cc768; From a4d6cb7cf45bddc76c78ed5fd683328af9e2018f · fixed in 30ff978af92cb51c9ba99f96fc4f4ac80d7001ba; From 121dc93ae1fcaa4b9a601eca6b3ca2e969c2fe2f · fixed in c39f5765ad840b71ff8db812d0210f216cca96e4; From 9e36568e67f817c728f9d79049d212da79109a75 · fixed in c973d53bcd420b58c4a34c68198746286d77e9fa; From fb3f7ec2606cdc7c6ef30970f381e571866bfd54 · fixed in c1fc0d3aff26ec9ff885b3e4c92eba98cf349678; From 509c2605065004fc4cd86ee50a9350d402785307 · fixed in dd395744e4ed87956fcbf81ecc6a20c51e35fa4e; From 2c85c61d1332e1e16f020d76951baf167dcb6f7a · fixed in f7e8117e42b20c30d2a5edab82c944a5e381d791; From 2c85c61d1332e1e16f020d76951baf167dcb6f7a · fixed in af1a9b65ebe8a948eda805c14b78d4d0767cb1b5; From 5.10.259 · fixed in 5.10.261; From 5.15.210 · fixed in 5.15.212; From 6.1.176 · fixed in 6.1.178; From 6.6.143 · fixed in 6.6.145; From 6.12.93 · fixed in 6.12.97; From 6.18.33 · fixed in 6.18.40; From 7.0.10 · fixed in 7.1
- Linux Linux
7.1
- KernelLinux
fixed in 5.10.261; From 5.11.0 · fixed in 5.15.212; From 5.16.0 · fixed in 6.1.178; From 6.2.0 · fixed in 6.6.145; From 6.7.0 · fixed in 6.12.97; From 6.13.0 · fixed in 6.18.40; From 6.19.0 · fixed in 7.1.5
References 8
git.kernel.org
- stable/c/f8896b684e246f3f00f45ba2b6803ae59b9cc768
- stable/c/30ff978af92cb51c9ba99f96fc4f4ac80d7001ba
- stable/c/c39f5765ad840b71ff8db812d0210f216cca96e4
- stable/c/c973d53bcd420b58c4a34c68198746286d77e9fa
- stable/c/c1fc0d3aff26ec9ff885b3e4c92eba98cf349678
- stable/c/dd395744e4ed87956fcbf81ecc6a20c51e35fa4e
- stable/c/f7e8117e42b20c30d2a5edab82c944a5e381d791
- stable/c/af1a9b65ebe8a948eda805c14b78d4d0767cb1b5