HID: sensor-hub: validate feature report details
authorKees Cook <keescook@chromium.org>
Wed, 28 Aug 2013 20:31:44 +0000 (22:31 +0200)
committerJiri Kosina <jkosina@suse.cz>
Wed, 4 Sep 2013 10:01:58 +0000 (12:01 +0200)
A HID device could send a malicious feature report that would cause the
sensor-hub HID driver to read past the end of heap allocation, leaking
kernel memory contents to the caller.

CVE-2013-2898

Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: stable@kernel.org
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-sensor-hub.c

index ffc80cf481b438e68c13992ede4352f6c480870a..6fca30eb377d671c3e967860b34abae22e597e5f 100644 (file)
@@ -221,7 +221,8 @@ int sensor_hub_get_feature(struct hid_sensor_hub_device *hsdev, u32 report_id,
 
        mutex_lock(&data->mutex);
        report = sensor_hub_report(report_id, hsdev->hdev, HID_FEATURE_REPORT);
-       if (!report || (field_index >=  report->maxfield)) {
+       if (!report || (field_index >=  report->maxfield) ||
+           report->field[field_index]->report_count < 1) {
                ret = -EINVAL;
                goto done_proc;
        }