{"id":17285,"date":"2026-09-05T02:30:57","date_gmt":"2026-09-04T18:30:57","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80781"},"modified":"2026-09-05T02:30:57","modified_gmt":"2026-09-04T18:30:57","slug":"cve-2026-80781","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80781","title":{"rendered":"CVE-2026-80781 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nHID: core: fix OOB re"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>HID: core: fix OOB read of field-&gt;usage in hid_set_field()<\/p>\n<p>hid_set_field() hands field-&gt;usage + offset to hid_dump_input() before<br \/>\nthe guard that bounds offset:<\/p>\n<p>\thid_dump_input(field-&gt;report-&gt;device, field-&gt;usage + offset, value);<\/p>\n<p>\tif (offset &gt;= field-&gt;report_count) {<br \/>\n\t\thid_err(&#8230;);<br \/>\n\t\treturn -1;<br \/>\n\t}<\/p>\n<p>Under CONFIG_DEBUG_FS hid_dump_input() dereferences that pointer, with<br \/>\nbuf = hid_resolv_usage(usage-&gt;hid, NULL).  The usage[] array is<br \/>\nallocated inline with the hid_field in hid_register_field() and holds<br \/>\nfield-&gt;maxusage entries, so an offset past it reads off the end of the<br \/>\nkvzalloc()ed allocation and into a neighbouring object.  Had the guard<br \/>\nrun first, offset &lt; report_count maxfield before issuing<br \/>\nhid_set_field(report-&gt;field[0], 11 + i, &#8230;) for i = 0..31, so its<br \/>\noffsets are fixed at 11..42 and are never checked against the bound<br \/>\nfield.  When the device registers that field with fewer usages, the<br \/>\nframebuffer deferred-io work drives the read on every tile.  KASAN<br \/>\nreports a 4-byte slab-out-of-bounds read in hid_dump_input() below<br \/>\nhid_set_field(), and the same boot logs &#8220;offset (1) exceeds<br \/>\nreport_count (1)&#8221; from the guard that runs only afterwards.<\/p>\n<p>Move the hid_dump_input() call below the guard.  Because<br \/>\nfield-&gt;maxusage &gt;= field-&gt;report_count, the guard then establishes that<br \/>\nfield-&gt;usage + offset lies inside the array before it is dereferenced,<br \/>\nfor every caller and without changing behaviour on the valid path.<\/p>\n<p>Discovered by XBOW, triaged by Baul Lee <\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>HID: core: fix OOB read of field-&gt;usage in hid_set_field()<\/p>\n<p>hid_set_field() hands field-&gt;usage + offset to hid_dump_input() before<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-17285","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/17285","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17285"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}