Import Source
https://github.com/microsoft/AzureLinuxVulnerabilityData/blob/main/osv/AZL-99407.json
JSON Data
https://api.osv.dev/v1/vulns/AZL-99407
Upstream
Published
2026-09-04T16:18:03Z
Modified
2026-09-05T14:16:56.869048085Z
Summary
CVE-2026-80781 affecting package kernel 6.6.150.1-1
Details

In the Linux kernel, the following vulnerability has been resolved:

HID: core: fix OOB read of field->usage in hidsetfield()

hidsetfield() hands field->usage + offset to hiddumpinput() before the guard that bounds offset:

hid_dump_input(field->report->device, field->usage + offset, value);

if (offset >= field->report_count) {
    hid_err(...);
    return -1;
}

Under CONFIGDEBUGFS hiddumpinput() dereferences that pointer, with buf = hidresolvusage(usage->hid, NULL). The usage[] array is allocated inline with the hidfield in hidregisterfield() and holds field->maxusage entries, so an offset past it reads off the end of the kvzalloc()ed allocation and into a neighbouring object. Had the guard run first, offset < reportcount <= maxusage would already have confined the pointer to the array.

A caller supplies such an offset today. picolcdfbsendtile() validates only report->maxfield before issuing hidsetfield(report->field[0], 11 + i, ...) for i = 0..31, so its offsets are fixed at 11..42 and are never checked against the bound field. When the device registers that field with fewer usages, the framebuffer deferred-io work drives the read on every tile. KASAN reports a 4-byte slab-out-of-bounds read in hiddumpinput() below hidsetfield(), and the same boot logs "offset (1) exceeds reportcount (1)" from the guard that runs only afterwards.

Move the hiddumpinput() call below the guard. Because field->maxusage >= field->report_count, the guard then establishes that field->usage + offset lies inside the array before it is dereferenced, for every caller and without changing behaviour on the valid path.

Discovered by XBOW, triaged by Baul Lee baul.lee@xbow.com

References

Affected packages

Azure Linux:3 / kernel

Package

Name
kernel
Purl
pkg:rpm/azure-linux/kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Last affected
6.6.150.1-1

Database specific

source
"https://github.com/microsoft/AzureLinuxVulnerabilityData/blob/main/osv/AZL-99407.json"