CVE-2026-63916

Summary

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 Software

VendorProductVersion RangeStatus
LinuxLinux5ae6e89f7409cb5d218bb728326eba9c650d9700 < 2add311d99646c9d235b2c44f9c169ba30f5db3aaffected
LinuxLinux5ae6e89f7409cb5d218bb728326eba9c650d9700 < 83bd8a5756a3c4a413ed8f6253f9eb2821e1ccafaffected
LinuxLinux5ae6e89f7409cb5d218bb728326eba9c650d9700 < 5716a293fb19d382ca2336e08fd28a619a5f3c25affected
LinuxLinux5ae6e89f7409cb5d218bb728326eba9c650d9700 < ed598de9f61582902406d352d99f2073d8e00298affected
LinuxLinux5ae6e89f7409cb5d218bb728326eba9c650d9700 < 43e7c02d6090a82fd60d63491f6871aec906345eaffected
LinuxLinux5ae6e89f7409cb5d218bb728326eba9c650d9700 < b8338111e14183972359009c12d0dbd81d2e1e16affected
LinuxLinux5ae6e89f7409cb5d218bb728326eba9c650d9700 < 5db3fca0cec7b33bc5379411d0a60d792c9f9bc0affected
LinuxLinux5ae6e89f7409cb5d218bb728326eba9c650d9700 < c0a8899e02ddebd51e2589835182c239c2e224aeaffected
LinuxLinux3.18affected
LinuxLinux0 < 3.18unaffected
LinuxLinux5.10.259 <= 5.10.*unaffected
LinuxLinux5.15.210 <= 5.15.*unaffected
LinuxLinux6.1.176 <= 6.1.*unaffected
LinuxLinux6.6.143 <= 6.6.*unaffected
LinuxLinux6.12.93 <= 6.12.*unaffected
LinuxLinux6.18.35 <= 6.18.*unaffected
LinuxLinux7.0.12 <= 7.0.*unaffected
LinuxLinux7.1 <= *unaffected

Weaknesses

References