UBUNTU-CVE-2026-98499: Medium severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: HID: wacom: fix OOB read in wacomwacpenserialenforce() The 'wacomwacpenserialenforce()' function may calculate and pass an invalid offset to hidfieldextract(), resulting in memory reads at incorrect addresses -- possibly beyond the end of the report. If a field in the HID descriptor lists more usages than its Report Count actually reserves space for, the function's inner 'j' will walk past the end of the field: for (i = 0; i < report->maxfield; i++) { for (j = 0; j < report->field[i]->maxusage; j++) { ... value = hidfieldextract(hdev, rawdata + 1, offset + j size, size); A descriptor listing 12288 usages against Report Count 1 has the loop extract the usage at index 12287 from bit offset 98296 -- about 12 KB past a 2-byte received report. The value is stored in wacomwac->serial[0] and can reach userspace as an MSCSERIAL event, making this an information disclosure. Clamp the loop to field->reportcount, the number of value slots the report holds. Value slots past the last declared usage are still scanned; they reuse that usage (HID 1.11, 6.2.2.8). Verified on v6.12.105 with a UHID reproducer: a 2-byte report from such a descriptor trips KASAN before the patch and not after it.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
In the HID field-processing loop, clamp the inner `j` loop to `field->report_count` rather than `field->maxusage`, so it does not scan value slots beyond the number reserved by the report.