New issue
Advanced search Search tips
Starred by 4 users
Status: Fixed
Owner:
Closed: Aug 2014
Cc:



Sign in to add a comment
Linux kernel HID report fixup multiple off-by-one issues
Project Member Reported by hawkes@google.com, Aug 19 2014 Back to list
A variety of HID drivers have off-by-one or similar bugs in their report descriptor fixup code. The following cases were identified:

- In hid-cherry.c, ch_report_fixup checks for rsize >= 17 and then sets rdesc[17].
- In hid-kye.c, kye_report_fixup checks for rsize >= 74 and then sets rdesc[74].
- In hid-lg.c, lg_report_fixup checks for rsize >= 90 and then sets rdesc[90]. Similar case with (quirks & LG_RDESC_REL_ABS) condition in same function.
- In hid-monterey.c, mr_report_fixup checks for rsize >= 30 and then sets rdesc[30].
- In hid-petalynx.c, pl_report_fixup checks for rsize >= 60 and then sets rdesc[60].
- In hid-sunplus.c, sp_report_fixup checks for rsize >= 107 and then sets both rdesc[110] and rdesc[111].

In practice it doesn't look like any of these would be exploitable due to kmalloc size alignment - i.e. none of these constant offsets appear to straddle a slab size class.

This bug is subject to a 90 day disclosure deadline. If 90 days elapse
without a broadly available patch, then the bug report will automatically
become visible to the public.

 
hid-off-by-one-fix.patch
4.1 KB Download
Project Member Comment 1 by hawkes@google.com, Aug 21 2014
Labels: -Restrict-View-Commit
Status: Fixed
The patch has been committed by Jiri Kosina: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4ab25786c87eb20857bbb715c3ae34ec8fd6a214

Thanks for the fast response from security@kernel.org and Jiri.
Project Member Comment 2 by hawkes@google.com, Sep 11 2014
Labels: CVE-2014-3184
Sign in to add a comment