Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
59bfdb41a34cf5d6af1c637348714c2b5a6ca676 to < f8896b684e246f3f00f45ba2b6803ae59b9cc768affecteda4d6cb7cf45bddc76c78ed5fd683328af9e2018f to < 30ff978af92cb51c9ba99f96fc4f4ac80d7001baaffected121dc93ae1fcaa4b9a601eca6b3ca2e969c2fe2f to < c39f5765ad840b71ff8db812d0210f216cca96e4affected9e36568e67f817c728f9d79049d212da79109a75 to < c973d53bcd420b58c4a34c68198746286d77e9faaffectedfb3f7ec2606cdc7c6ef30970f381e571866bfd54 to < c1fc0d3aff26ec9ff885b3e4c92eba98cf349678affected509c2605065004fc4cd86ee50a9350d402785307 to < dd395744e4ed87956fcbf81ecc6a20c51e35fa4eaffected2c85c61d1332e1e16f020d76951baf167dcb6f7a to < f7e8117e42b20c30d2a5edab82c944a5e381d791affected2c85c61d1332e1e16f020d76951baf167dcb6f7a to < af1a9b65ebe8a948eda805c14b78d4d0767cb1b5affected710a946b1aa2c35dc56f86621f436938f31ba1a5affected5.10.259 to < 5.10.261affected5.15.210 to < 5.15.212affected6.1.176 to < 6.1.178affected6.6.143 to < 6.6.145affected6.12.93 to < 6.12.97affected6.18.33 to < 6.18.40affected7.0.10 to < 7.1affected
Linux Linux
Default version status: affected
7.1affected0 to < 7.1unaffected5.10.261 to ≤ 5.10.*unaffected5.15.212 to ≤ 5.15.*unaffected6.1.178 to ≤ 6.1.*unaffected6.6.145 to ≤ 6.6.*unaffected6.12.97 to ≤ 6.12.*unaffected6.18.40 to ≤ 6.18.*unaffected7.1.5 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/f8896b684e246f3f00f45ba2b6803ae59b9cc768 ↗
- https://git.kernel.org/stable/c/30ff978af92cb51c9ba99f96fc4f4ac80d7001ba ↗
- https://git.kernel.org/stable/c/c39f5765ad840b71ff8db812d0210f216cca96e4 ↗
- https://git.kernel.org/stable/c/c973d53bcd420b58c4a34c68198746286d77e9fa ↗
- https://git.kernel.org/stable/c/c1fc0d3aff26ec9ff885b3e4c92eba98cf349678 ↗
- https://git.kernel.org/stable/c/dd395744e4ed87956fcbf81ecc6a20c51e35fa4e ↗
- https://git.kernel.org/stable/c/f7e8117e42b20c30d2a5edab82c944a5e381d791 ↗
- https://git.kernel.org/stable/c/af1a9b65ebe8a948eda805c14b78d4d0767cb1b5 ↗