{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-72352","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-08-09T03:40:39.921Z","datePublished":"2026-08-15T05:55:54.809Z","dateUpdated":"2026-08-17T05:43:09.954Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-17T05:43:09.954Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: bpf: Fix hid_bpf_get_data() range check\n\nhid_bpf_get_data() returns a pointer into the HID-BPF context data when\nthe caller-provided offset and size fit inside ctx->allocated_size.\n\nThe current check adds rdwr_buf_size and offset before comparing the\nresult against ctx->allocated_size. Since both values are unsigned, a\nvery large size can wrap the sum below ctx->allocated_size and make the\nhelper return a pointer even though the requested range is not contained\nin the backing buffer.\n\nUse check_add_overflow() to reject wrapped range ends before comparing\nthe requested range end against ctx->allocated_size."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The flaw is only reachable through local bpf() syscalls that load BPF_PROG_TYPE_STRUCT_OPS HID-BPF programs and attach them via BPF_LINK_CREATE; per kernel CNA guidance BPF subsystem bugs are Local even though callbacks may later run on HID input.\nAC:L - Once a HID-BPF program is loaded, the attacker fully controls offset and rdwr_buf_size passed to hid_bpf_get_data(); values such as offset=2 with size=~0 reliably wrap the unsigned sum and bypass the check without races or uncontrollable memory layout.\nPR:L - Loading BPF_MAP_TYPE_STRUCT_OPS maps and BPF_PROG_TYPE_STRUCT_OPS programs requires CAP_BPF (sysctl_unprivileged_bpf_disabled blocks unprivileged BPF); per kernel CNA guidance this is Low because CAP_BPF can be delegated via BPF tokens into user namespaces, not only init-namespace root.\nUI:N - The attacker loads and attaches their own HID-BPF program and triggers hid_bpf_get_data() from its callbacks; no separate victim action such as mounting, opening a file, or plugging in a device is required beyond the attacker's own bpf operations.\nS:U - Exploitation corrupts kernel heap memory from within the same kernel security authority to achieve local privilege escalation; it does not inherently cross VM, IOMMU, or container sandbox boundaries as a distinct scope change.\nC:H - The overflow lets BPF code obtain a pointer outside the allocated HID-BPF context buffer and read adjacent kernel heap memory, enabling arbitrary kernel information disclosure and supporting further exploitation primitives.\nI:H - The same out-of-bounds pointer allows arbitrary kernel heap writes through the returned buffer, enabling control of adjacent objects and potential arbitrary code execution in kernel context.\nA:H - Large out-of-bounds reads/writes against kmalloc-backed HID-BPF buffers can corrupt critical kernel structures and cause kernel oops, panic, or hang during HID-BPF callback execution."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/bpf/hid_bpf_dispatch.c"],"versions":[{"version":"658ee5a64fcfbbf758447fa3af425729eaabb0dc","lessThan":"ca373549140dfb386aa2de38364b58441b1f4885","status":"affected","versionType":"git"},{"version":"658ee5a64fcfbbf758447fa3af425729eaabb0dc","lessThan":"61a959b82f1aecd6d2d35c208013dd077cac9d10","status":"affected","versionType":"git"},{"version":"658ee5a64fcfbbf758447fa3af425729eaabb0dc","lessThan":"f81bc5a709dcbaf2a3bbef4ca7167f93900cc39f","status":"affected","versionType":"git"},{"version":"658ee5a64fcfbbf758447fa3af425729eaabb0dc","lessThan":"2d044049421dd48212b28646a850749d4a2d57fa","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/bpf/hid_bpf_dispatch.c"],"versions":[{"version":"6.3","status":"affected"},{"version":"0","lessThan":"6.3","status":"unaffected","versionType":"semver"},{"version":"6.12.97","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.40","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"7.1.5","lessThanOrEqual":"7.1.*","status":"unaffected","versionType":"semver"},{"version":"7.2","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3","versionEndExcluding":"6.12.97"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3","versionEndExcluding":"6.18.40"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3","versionEndExcluding":"7.1.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3","versionEndExcluding":"7.2"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/ca373549140dfb386aa2de38364b58441b1f4885"},{"url":"https://git.kernel.org/stable/c/61a959b82f1aecd6d2d35c208013dd077cac9d10"},{"url":"https://git.kernel.org/stable/c/f81bc5a709dcbaf2a3bbef4ca7167f93900cc39f"},{"url":"https://git.kernel.org/stable/c/2d044049421dd48212b28646a850749d4a2d57fa"}],"title":"HID: bpf: Fix hid_bpf_get_data() range check","x_generator":{"engine":"bippy-1.2.0"}}}}