{"id":"CVE-2026-63916","state":"PUBLISHED","title":"HID: wacom: Fix OOB write in wacom_hid_set_device_mode()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: wacom: Fix OOB write in wacom_hid_set_device_mode()\n\nwacom_hid_set_device_mode() currently assumes that the HID_DG_INPUTMODE\nusage is always located in the first field (field[0]) of the feature report.\nHowever, a device can specify HID_DG_INPUTMODE in a different field.\n\nIf HID_DG_INPUTMODE is in a field other than the first one and the first\nfield has a report_count smaller than the usage_index of HID_DG_INPUTMODE,\nthis leads to an out-of-bounds write to r->field[0]->value.\n\nFix this by storing the field index of HID_DG_INPUTMODE in 'struct\nhid_data' during feature mapping.  In wacom_hid_set_device_mode(), use\nthis stored field index to access the correct field and add bounds\nchecks to ensure both the field index and the value index are within\nvalid ranges before writing.","publishedAt":"2026-07-19T14:55:20.015Z","updatedAt":"2026-10-19T20:17:55.788Z","severity":{"score":8.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"2add311d99646c9d235b2c44f9c169ba30f5db3a","versionType":"git"},{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"83bd8a5756a3c4a413ed8f6253f9eb2821e1ccaf","versionType":"git"},{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"5716a293fb19d382ca2336e08fd28a619a5f3c25","versionType":"git"},{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"ed598de9f61582902406d352d99f2073d8e00298","versionType":"git"},{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"43e7c02d6090a82fd60d63491f6871aec906345e","versionType":"git"},{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"b8338111e14183972359009c12d0dbd81d2e1e16","versionType":"git"},{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"5db3fca0cec7b33bc5379411d0a60d792c9f9bc0","versionType":"git"},{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"c0a8899e02ddebd51e2589835182c239c2e224ae","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/wacom_sys.c","drivers/hid/wacom_wac.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.18","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.18","versionType":"semver"},{"version":"5.10.259","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.210","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.176","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.143","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.93","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.35","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.12","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/wacom_sys.c","drivers/hid/wacom_wac.h"]}],"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"],"weaknesses":["CWE-787"],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/63xxx/CVE-2026-63916.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-63916","state":"PUBLISHED","datePublished":"2026-07-19T14:55:20.015Z","dateUpdated":"2026-10-19T20:17:55.788Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T07:54:57.020Z"},"containers":{"cna":{"title":"HID: wacom: Fix OOB write in wacom_hid_set_device_mode()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: wacom: Fix OOB write in wacom_hid_set_device_mode()\n\nwacom_hid_set_device_mode() currently assumes that the HID_DG_INPUTMODE\nusage is always located in the first field (field[0]) of the feature report.\nHowever, a device can specify HID_DG_INPUTMODE in a different field.\n\nIf HID_DG_INPUTMODE is in a field other than the first one and the first\nfield has a report_count smaller than the usage_index of HID_DG_INPUTMODE,\nthis leads to an out-of-bounds write to r->field[0]->value.\n\nFix this by storing the field index of HID_DG_INPUTMODE in 'struct\nhid_data' during feature mapping.  In wacom_hid_set_device_mode(), use\nthis stored field index to access the correct field and add bounds\nchecks to ensure both the field index and the value index are within\nvalid ranges before writing."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"2add311d99646c9d235b2c44f9c169ba30f5db3a","versionType":"git"},{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"83bd8a5756a3c4a413ed8f6253f9eb2821e1ccaf","versionType":"git"},{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"5716a293fb19d382ca2336e08fd28a619a5f3c25","versionType":"git"},{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"ed598de9f61582902406d352d99f2073d8e00298","versionType":"git"},{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"43e7c02d6090a82fd60d63491f6871aec906345e","versionType":"git"},{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"b8338111e14183972359009c12d0dbd81d2e1e16","versionType":"git"},{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"5db3fca0cec7b33bc5379411d0a60d792c9f9bc0","versionType":"git"},{"version":"5ae6e89f7409cb5d218bb728326eba9c650d9700","status":"affected","lessThan":"c0a8899e02ddebd51e2589835182c239c2e224ae","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/wacom_sys.c","drivers/hid/wacom_wac.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.18","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.18","versionType":"semver"},{"version":"5.10.259","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.210","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.176","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.143","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.93","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.35","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.12","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/wacom_sys.c","drivers/hid/wacom_wac.h"]}],"references":[{"url":"https://git.kernel.org/stable/c/2add311d99646c9d235b2c44f9c169ba30f5db3a"},{"url":"https://git.kernel.org/stable/c/83bd8a5756a3c4a413ed8f6253f9eb2821e1ccaf"},{"url":"https://git.kernel.org/stable/c/5716a293fb19d382ca2336e08fd28a619a5f3c25"},{"url":"https://git.kernel.org/stable/c/ed598de9f61582902406d352d99f2073d8e00298"},{"url":"https://git.kernel.org/stable/c/43e7c02d6090a82fd60d63491f6871aec906345e"},{"url":"https://git.kernel.org/stable/c/b8338111e14183972359009c12d0dbd81d2e1e16"},{"url":"https://git.kernel.org/stable/c/5db3fca0cec7b33bc5379411d0a60d792c9f9bc0"},{"url":"https://git.kernel.org/stable/c/c0a8899e02ddebd51e2589835182c239c2e224ae"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":8.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:A - The bug is triggered when the kernel probes a Wacom HID device whose report descriptor is supplied by the peripheral; Bluetooth Wacom tablets are widely deployed and an attacker within radio range can present a malicious spoofed Wacom Bluetooth HID device, which is a more severe but reasonable reach path than USB-only scenarios.\nAC:L - The attacker fully controls the malicious device's HID report descriptor and can reliably place HID_DG_INPUTMODE in a non-first field with a high usage_index while keeping field[0]'s report_count small, causing deterministic OOB write during driver initialization without race conditions or rare configuration.\nPR:N - Exploitation requires no privileges on the victim system; an attacker only needs to connect or spoof a malicious Wacom HID peripheral (USB plug-in or Bluetooth advertisement), with no login, capabilities, or user-namespace access required on the target host.\nUI:N - No victim interaction with applications or files is needed; the attacker can physically connect a USB device to an unattended machine or deliver a spoofed Bluetooth peripheral, and the kernel automatically parses the descriptor and calls the vulnerable function during device probe or resume.\nS:U - The out-of-bounds write corrupts kernel heap memory within the same kernel security boundary, enabling local privilege escalation or denial of service but not crossing a VM, IOMMU, or sandbox boundary.\nC:H - The out-of-bounds write to field[0]->value can corrupt adjacent heap objects (new_value, usages_priorities, or neighboring kmalloc allocations), and such kernel heap memory corruption is reasonably exploitable for information disclosure.\nI:H - This is an out-of-bounds write in kernel heap memory with attacker-influenced offset and value (writes integer 2), which per CVSS kernel guidance constitutes high integrity impact due to potential arbitrary memory corruption and code execution.\nA:H - Corrupting kernel heap metadata or adjacent objects during device initialization can cause kernel oops, panic, or hang, and any out-of-bounds write in kernel space carries high availability impact even before full exploitation."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:37:10.495Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"5.10.259"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"5.15.210"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"6.1.176"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"6.6.143"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"6.12.93"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"6.18.35"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"7.0.12"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18","versionEndExcluding":"7.1"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-63916","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T15:33:16.082526Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-787","lang":"en","type":"CWE","description":"CWE-787 Out-of-bounds Write"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T20:17:55.788Z"}}]}}}