Description
In the Linux kernel, the following vulnerability has been resolved: HID: wacom: Fix OOB write in wacom_hid_set_device_mode() wacom_hid_set_device_mode() currently assumes that the HID_DG_INPUTMODE usage is always located in the first field (field[0]) of the feature report. However, a device can specify HID_DG_INPUTMODE in a different field. If HID_DG_INPUTMODE is in a field other than the first one and the first field has a report_count smaller than the usage_index of HID_DG_INPUTMODE, this leads to an out-of-bounds write to r->field[0]->value. Fix this by storing the field index of HID_DG_INPUTMODE in 'struct hid_data' during feature mapping. In wacom_hid_set_device_mode(), use this stored field index to access the correct field and add bounds checks to ensure both the field index and the value index are within valid ranges before writing.
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
5ae6e89f7409cb5d218bb728326eba9c650d9700 to < 2add311d99646c9d235b2c44f9c169ba30f5db3aaffected5ae6e89f7409cb5d218bb728326eba9c650d9700 to < 83bd8a5756a3c4a413ed8f6253f9eb2821e1ccafaffected5ae6e89f7409cb5d218bb728326eba9c650d9700 to < 5716a293fb19d382ca2336e08fd28a619a5f3c25affected5ae6e89f7409cb5d218bb728326eba9c650d9700 to < ed598de9f61582902406d352d99f2073d8e00298affected5ae6e89f7409cb5d218bb728326eba9c650d9700 to < 43e7c02d6090a82fd60d63491f6871aec906345eaffected5ae6e89f7409cb5d218bb728326eba9c650d9700 to < b8338111e14183972359009c12d0dbd81d2e1e16affected5ae6e89f7409cb5d218bb728326eba9c650d9700 to < 5db3fca0cec7b33bc5379411d0a60d792c9f9bc0affected5ae6e89f7409cb5d218bb728326eba9c650d9700 to < c0a8899e02ddebd51e2589835182c239c2e224aeaffected
Linux Linux
Default version status: affected
3.18affected0 to < 3.18unaffected5.10.259 to ≤ 5.10.*unaffected5.15.210 to ≤ 5.15.*unaffected6.1.176 to ≤ 6.1.*unaffected6.6.143 to ≤ 6.6.*unaffected6.12.93 to ≤ 6.12.*unaffected6.18.35 to ≤ 6.18.*unaffected7.0.12 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/2add311d99646c9d235b2c44f9c169ba30f5db3a ↗
- https://git.kernel.org/stable/c/83bd8a5756a3c4a413ed8f6253f9eb2821e1ccaf ↗
- https://git.kernel.org/stable/c/5716a293fb19d382ca2336e08fd28a619a5f3c25 ↗
- https://git.kernel.org/stable/c/ed598de9f61582902406d352d99f2073d8e00298 ↗
- https://git.kernel.org/stable/c/43e7c02d6090a82fd60d63491f6871aec906345e ↗
- https://git.kernel.org/stable/c/b8338111e14183972359009c12d0dbd81d2e1e16 ↗
- https://git.kernel.org/stable/c/5db3fca0cec7b33bc5379411d0a60d792c9f9bc0 ↗
- https://git.kernel.org/stable/c/c0a8899e02ddebd51e2589835182c239c2e224ae ↗