{"id":"CVE-2026-80604","state":"PUBLISHED","title":"HID: core: Fix OOB read in hid_get_report for numbered reports","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: core: Fix OOB read in hid_get_report for numbered reports\n\nWhen a caller passes a size of 0 to hid_report_raw_event() for a\nnumbered report, the function originally called hid_get_report() before\nperforming any size validation.\n\nInside hid_get_report(), if the report is numbered (report_enum->numbered\nis true), it unconditionally dereferences data[0] to extract the report ID.\nWith a size of 0, this results in an out-of-bounds read or kernel panic.\n\nFix this by moving the numbered report size validation check before the\ncall to hid_get_report(), ensuring that size is at least 1 before\ndereferencing the data pointer.","publishedAt":"2026-08-28T06:48:29.755Z","updatedAt":"2026-10-16T19:26:30.189Z","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":"59bfdb41a34cf5d6af1c637348714c2b5a6ca676","status":"affected","lessThan":"f8896b684e246f3f00f45ba2b6803ae59b9cc768","versionType":"git"},{"version":"a4d6cb7cf45bddc76c78ed5fd683328af9e2018f","status":"affected","lessThan":"30ff978af92cb51c9ba99f96fc4f4ac80d7001ba","versionType":"git"},{"version":"121dc93ae1fcaa4b9a601eca6b3ca2e969c2fe2f","status":"affected","lessThan":"c39f5765ad840b71ff8db812d0210f216cca96e4","versionType":"git"},{"version":"9e36568e67f817c728f9d79049d212da79109a75","status":"affected","lessThan":"c973d53bcd420b58c4a34c68198746286d77e9fa","versionType":"git"},{"version":"fb3f7ec2606cdc7c6ef30970f381e571866bfd54","status":"affected","lessThan":"c1fc0d3aff26ec9ff885b3e4c92eba98cf349678","versionType":"git"},{"version":"509c2605065004fc4cd86ee50a9350d402785307","status":"affected","lessThan":"dd395744e4ed87956fcbf81ecc6a20c51e35fa4e","versionType":"git"},{"version":"2c85c61d1332e1e16f020d76951baf167dcb6f7a","status":"affected","lessThan":"f7e8117e42b20c30d2a5edab82c944a5e381d791","versionType":"git"},{"version":"2c85c61d1332e1e16f020d76951baf167dcb6f7a","status":"affected","lessThan":"af1a9b65ebe8a948eda805c14b78d4d0767cb1b5","versionType":"git"},{"version":"710a946b1aa2c35dc56f86621f436938f31ba1a5","status":"affected","versionType":"git"},{"version":"5.10.259","status":"affected","lessThan":"5.10.261","versionType":"semver"},{"version":"5.15.210","status":"affected","lessThan":"5.15.212","versionType":"semver"},{"version":"6.1.176","status":"affected","lessThan":"6.1.178","versionType":"semver"},{"version":"6.6.143","status":"affected","lessThan":"6.6.145","versionType":"semver"},{"version":"6.12.93","status":"affected","lessThan":"6.12.97","versionType":"semver"},{"version":"6.18.33","status":"affected","lessThan":"6.18.40","versionType":"semver"},{"version":"7.0.10","status":"affected","lessThan":"7.1","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/hid-core.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"7.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"7.1","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/hid-core.c"]}],"references":["https://git.kernel.org/stable/c/f8896b684e246f3f00f45ba2b6803ae59b9cc768","https://git.kernel.org/stable/c/30ff978af92cb51c9ba99f96fc4f4ac80d7001ba","https://git.kernel.org/stable/c/c39f5765ad840b71ff8db812d0210f216cca96e4","https://git.kernel.org/stable/c/c973d53bcd420b58c4a34c68198746286d77e9fa","https://git.kernel.org/stable/c/c1fc0d3aff26ec9ff885b3e4c92eba98cf349678","https://git.kernel.org/stable/c/dd395744e4ed87956fcbf81ecc6a20c51e35fa4e","https://git.kernel.org/stable/c/f7e8117e42b20c30d2a5edab82c944a5e381d791","https://git.kernel.org/stable/c/af1a9b65ebe8a948eda805c14b78d4d0767cb1b5"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:07.220Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/80xxx/CVE-2026-80604.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-80604","state":"PUBLISHED","datePublished":"2026-08-28T06:48:29.755Z","dateUpdated":"2026-10-16T19:26:30.189Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-26T14:34:25.772Z"},"containers":{"cna":{"title":"HID: core: Fix OOB read in hid_get_report for numbered reports","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: core: Fix OOB read in hid_get_report for numbered reports\n\nWhen a caller passes a size of 0 to hid_report_raw_event() for a\nnumbered report, the function originally called hid_get_report() before\nperforming any size validation.\n\nInside hid_get_report(), if the report is numbered (report_enum->numbered\nis true), it unconditionally dereferences data[0] to extract the report ID.\nWith a size of 0, this results in an out-of-bounds read or kernel panic.\n\nFix this by moving the numbered report size validation check before the\ncall to hid_get_report(), ensuring that size is at least 1 before\ndereferencing the data pointer."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"59bfdb41a34cf5d6af1c637348714c2b5a6ca676","status":"affected","lessThan":"f8896b684e246f3f00f45ba2b6803ae59b9cc768","versionType":"git"},{"version":"a4d6cb7cf45bddc76c78ed5fd683328af9e2018f","status":"affected","lessThan":"30ff978af92cb51c9ba99f96fc4f4ac80d7001ba","versionType":"git"},{"version":"121dc93ae1fcaa4b9a601eca6b3ca2e969c2fe2f","status":"affected","lessThan":"c39f5765ad840b71ff8db812d0210f216cca96e4","versionType":"git"},{"version":"9e36568e67f817c728f9d79049d212da79109a75","status":"affected","lessThan":"c973d53bcd420b58c4a34c68198746286d77e9fa","versionType":"git"},{"version":"fb3f7ec2606cdc7c6ef30970f381e571866bfd54","status":"affected","lessThan":"c1fc0d3aff26ec9ff885b3e4c92eba98cf349678","versionType":"git"},{"version":"509c2605065004fc4cd86ee50a9350d402785307","status":"affected","lessThan":"dd395744e4ed87956fcbf81ecc6a20c51e35fa4e","versionType":"git"},{"version":"2c85c61d1332e1e16f020d76951baf167dcb6f7a","status":"affected","lessThan":"f7e8117e42b20c30d2a5edab82c944a5e381d791","versionType":"git"},{"version":"2c85c61d1332e1e16f020d76951baf167dcb6f7a","status":"affected","lessThan":"af1a9b65ebe8a948eda805c14b78d4d0767cb1b5","versionType":"git"},{"version":"710a946b1aa2c35dc56f86621f436938f31ba1a5","status":"affected","versionType":"git"},{"version":"5.10.259","status":"affected","lessThan":"5.10.261","versionType":"semver"},{"version":"5.15.210","status":"affected","lessThan":"5.15.212","versionType":"semver"},{"version":"6.1.176","status":"affected","lessThan":"6.1.178","versionType":"semver"},{"version":"6.6.143","status":"affected","lessThan":"6.6.145","versionType":"semver"},{"version":"6.12.93","status":"affected","lessThan":"6.12.97","versionType":"semver"},{"version":"6.18.33","status":"affected","lessThan":"6.18.40","versionType":"semver"},{"version":"7.0.10","status":"affected","lessThan":"7.1","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/hid-core.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"7.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"7.1","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/hid-core.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/f8896b684e246f3f00f45ba2b6803ae59b9cc768"},{"url":"https://git.kernel.org/stable/c/30ff978af92cb51c9ba99f96fc4f4ac80d7001ba"},{"url":"https://git.kernel.org/stable/c/c39f5765ad840b71ff8db812d0210f216cca96e4"},{"url":"https://git.kernel.org/stable/c/c973d53bcd420b58c4a34c68198746286d77e9fa"},{"url":"https://git.kernel.org/stable/c/c1fc0d3aff26ec9ff885b3e4c92eba98cf349678"},{"url":"https://git.kernel.org/stable/c/dd395744e4ed87956fcbf81ecc6a20c51e35fa4e"},{"url":"https://git.kernel.org/stable/c/f7e8117e42b20c30d2a5edab82c944a5e381d791"},{"url":"https://git.kernel.org/stable/c/af1a9b65ebe8a948eda805c14b78d4d0767cb1b5"}],"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 - A malicious Bluetooth HID peripheral with numbered reports can reach hid_report_raw_event() during driver probe/feature mapping (e.g., mt_get_feature()) when hid_report_len() is 0, bypassing __hid_input_report(); BT HIDP delivers attacker-controlled descriptors over an adjacent wireless link.\nAC:L - An attacker fully controls the HID report descriptor and GET_REPORT responses; pairing/connecting a device with numbered reports plus a zero-length report ID 0 deterministically calls hid_report_raw_event() with size 0 during probe, with no race or victim-specific heap layout required.\nPR:N - Exploitation requires only a malicious HID peripheral presenting a crafted numbered-report descriptor; the attacker needs no local account, capabilities, or init-namespace privileges on the victim host.\nUI:N - Feature-mapping probe I/O runs automatically during HID enumeration when the device connects or auto-reconnects; no additional victim file-open, mount, or application interaction is needed beyond standard peripheral attachment handled by the kernel.\nS:U - The out-of-bounds read and kernel panic occur entirely within host kernel HID-core processing; impact does not cross a VM, container, or IOMMU boundary to a separate security authority.\nC:H - On numbered-report devices, hid_get_report() dereferences data[0] before any size validation when size is 0, causing an out-of-bounds kernel memory read that may disclose adjacent heap or slab contents.\nI:H - Kernel heap out-of-bounds reads in HID-core can corrupt parser state or be chained with further memory corruption primitives; per kernel guidance, OOB reads in kernel context warrant High integrity impact when exploitation potential exists.\nA:H - The fix commit and CVE description state that dereferencing data[0] with size 0 on numbered reports can cause a kernel panic; this is a kernel oops-class failure denying system availability until reboot."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-29T06:21:15.771Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.259","versionEndExcluding":"5.10.261"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.210","versionEndExcluding":"5.15.212"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.176","versionEndExcluding":"6.1.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6.143","versionEndExcluding":"6.6.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12.93","versionEndExcluding":"6.12.97"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.18.33","versionEndExcluding":"6.18.40"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.1","versionEndExcluding":"7.1.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.1","versionEndExcluding":"7.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.0.10"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-80604","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T19:18:35.002324Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-16T19:26:30.189Z"}}]}}}