HID: wacom: Fix OOB write in wacom_hid_set_device_mode()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.93, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
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.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 5ae6e89f7409cb5d218bb728326eba9c650d9700 · fixed in 2add311d99646c9d235b2c44f9c169ba30f5db3a; From 5ae6e89f7409cb5d218bb728326eba9c650d9700 · fixed in 83bd8a5756a3c4a413ed8f6253f9eb2821e1ccaf; From 5ae6e89f7409cb5d218bb728326eba9c650d9700 · fixed in 5716a293fb19d382ca2336e08fd28a619a5f3c25; From 5ae6e89f7409cb5d218bb728326eba9c650d9700 · fixed in ed598de9f61582902406d352d99f2073d8e00298; From 5ae6e89f7409cb5d218bb728326eba9c650d9700 · fixed in 43e7c02d6090a82fd60d63491f6871aec906345e; From 5ae6e89f7409cb5d218bb728326eba9c650d9700 · fixed in b8338111e14183972359009c12d0dbd81d2e1e16; From 5ae6e89f7409cb5d218bb728326eba9c650d9700 · fixed in 5db3fca0cec7b33bc5379411d0a60d792c9f9bc0; From 5ae6e89f7409cb5d218bb728326eba9c650d9700 · fixed in c0a8899e02ddebd51e2589835182c239c2e224ae
- Linux Linux
3.18
- KernelLinux
From 3.18.0 · fixed in 5.10.259; From 5.11.0 · fixed in 5.15.210; From 5.16.0 · fixed in 6.1.176; From 6.2.0 · fixed in 6.6.143; From 6.7.0 · fixed in 6.12.93; From 6.13.0 · fixed in 6.18.35; From 6.19.0 · fixed in 7.0.12
References 8
git.kernel.org
- stable/c/2add311d99646c9d235b2c44f9c169ba30f5db3a
- stable/c/83bd8a5756a3c4a413ed8f6253f9eb2821e1ccaf
- stable/c/5716a293fb19d382ca2336e08fd28a619a5f3c25
- stable/c/ed598de9f61582902406d352d99f2073d8e00298
- stable/c/43e7c02d6090a82fd60d63491f6871aec906345e
- stable/c/b8338111e14183972359009c12d0dbd81d2e1e16
- stable/c/5db3fca0cec7b33bc5379411d0a60d792c9f9bc0
- stable/c/c0a8899e02ddebd51e2589835182c239c2e224ae