HID: bpf: Fix hid_bpf_get_data() range check
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.97, 6.18.40, 7.1.5
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: HID: bpf: Fix hid_bpf_get_data() range check hid_bpf_get_data() returns a pointer into the HID-BPF context data when the caller-provided offset and size fit inside ctx->allocated_size. The current check adds rdwr_buf_size and offset before comparing the result against ctx->allocated_size. Since both values are unsigned, a very large size can wrap the sum below ctx->allocated_size and make the helper return a pointer even though the requested range is not contained in the backing buffer. Use check_add_overflow() to reject wrapped range ends before comparing the requested range end against ctx->allocated_size.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 658ee5a64fcfbbf758447fa3af425729eaabb0dc · fixed in f72176bde0cc0e709e41ab170c71e8f229232af6; From 658ee5a64fcfbbf758447fa3af425729eaabb0dc · fixed in ca373549140dfb386aa2de38364b58441b1f4885; From 658ee5a64fcfbbf758447fa3af425729eaabb0dc · fixed in 61a959b82f1aecd6d2d35c208013dd077cac9d10; From 658ee5a64fcfbbf758447fa3af425729eaabb0dc · fixed in f81bc5a709dcbaf2a3bbef4ca7167f93900cc39f; From 658ee5a64fcfbbf758447fa3af425729eaabb0dc · fixed in 2d044049421dd48212b28646a850749d4a2d57fa
- Linux Linux
6.3
- KernelLinux
From 6.3.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.97; From 6.13.0 · fixed in 6.18.40; From 6.19.0 · fixed in 7.1.5