CVE-2026-64277

Source
https://cve.org/CVERecord?id=CVE-2026-64277
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64277.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-64277
Downstream
Published
2026-07-25T08:49:21.936Z
Modified
2026-07-26T05:17:33.776913924Z
Summary
Input: synaptics-rmi4 - bound the F3A keymap to the GPIO count
Details

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

Input: synaptics-rmi4 - bound the F3A keymap to the GPIO count

rmif3ainitialize() takes the GPIO count from the device query register (f3a->gpiocount = buf & RMIF3AGPIOCOUNT, range 0..127). rmif3amapgpios() then allocates gpiokeymap with min(gpiocount, TRACKSTICKRANGEEND) == at most 6 entries, but rmif3aattention() iterates the full gpiocount and dereferences gpiokeymap[i], and input->keycodemax is set to the full gpiocount while input->keycode points at the 6-entry allocation.

A device that reports gpiocount > 6 therefore causes an out-of-bounds read of gpiokeymap[] on every attention interrupt, and out-of-bounds accesses through the input core's default keymap ioctls: EVIOCGKEYCODE reads past the buffer (leaking adjacent slab memory to user space) and EVIOCSKEYCODE writes a caller-controlled value past it, for any process able to open the evdev node, since inputdefaultgetkeycode() and inputdefault_setkeycode() only bound the index against keycodemax.

Size the keymap for the full gpiocount. The mapping loop is unchanged: it still assigns only the first min(gpiocount, TRACKSTICKRANGEEND) entries; the remaining slots stay KEYRESERVED (devmkcalloc zero-fills) and are skipped when reporting.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64277.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
9e4c596bfd004f447a652205163234dfd4aafa69
Fixed
502ad7caaa1a445b734c827fa256e5311df67e3d
Fixed
3480e24bc4e178aaa009edb25b6ee12df199e210
Fixed
35ed74d32d8260bdfb14a94caf402bf0866bdeec
Fixed
ba57f430328534501962d60d651e385ffd7af9ca
Fixed
850117b637bcb1dcc14be0cf09ac819a8707b42c
Fixed
8db211aed83733073b0814adaeeab61d4521474e
Fixed
64fb0e1161ccc6b9e48b8df61f07d3c34c01ec42
Fixed
57c10915f2c16c90e0d46ad00876bf39ece40fc2

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64277.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.10.0
Fixed
5.10.261
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.212
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.178
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.145
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.96
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.39
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.1.4

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64277.json"