CVE-2026-64276

Summary

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

Input: synaptics-rmi4 - bound the F30 keymap to the GPIO/LED count

rmi_f30_map_gpios() allocates gpioled_key_map with min(gpioled_count, TRACKSTICK_RANGE_END) == at most 6 entries, but rmi_f30_attention() iterates the full f30->gpioled_count (device query register, range 0..31) and dereferences gpioled_key_map[i], and input->keycodemax is set to the full gpioled_count while input->keycode points at the 6-entry allocation.

A device that reports gpioled_count > 6 with GPIO support enabled therefore causes an out-of-bounds read on the attention interrupt and out-of-bounds read/write through the EVIOCGKEYCODE/EVIOCSKEYCODE ioctls, which bound the index only against keycodemax. This is the same defect as the F3A handler, which was copied from F30.

Size the keymap for the full gpioled_count; the mapping loop still assigns only the first min(gpioled_count, TRACKSTICK_RANGE_END) entries.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux3e64fcbdbd10e46dede502d507dbcc104837cd59 < 8c6d18d61bb6fe0e6edf848413391c590552e8a9affected
LinuxLinux3e64fcbdbd10e46dede502d507dbcc104837cd59 < d162a1ead7de404d8b41a093c83ed0db6487cdedaffected
LinuxLinux3e64fcbdbd10e46dede502d507dbcc104837cd59 < f0be9eba946e9200b43265e0a748d38bd0a56954affected
LinuxLinux3e64fcbdbd10e46dede502d507dbcc104837cd59 < 26c895928d7118436a24f564587cb4aefc40cdd8affected
LinuxLinux3e64fcbdbd10e46dede502d507dbcc104837cd59 < 4e3689c26854356f41fbaa1eafa382e58ac79e00affected
LinuxLinux3e64fcbdbd10e46dede502d507dbcc104837cd59 < e849c6f51e6877104c765da084e001ec37c8e119affected
LinuxLinux3e64fcbdbd10e46dede502d507dbcc104837cd59 < bfe622efecd4ff0a792d0ecd1a8dce535a902f50affected
LinuxLinux3e64fcbdbd10e46dede502d507dbcc104837cd59 < d577e46785d45484b2ab7e7309c49b18764bf56caffected
LinuxLinux4.14affected
LinuxLinux0 < 4.14unaffected
LinuxLinux5.10.261 <= 5.10.*unaffected
LinuxLinux5.15.212 <= 5.15.*unaffected
LinuxLinux6.1.178 <= 6.1.*unaffected
LinuxLinux6.6.145 <= 6.6.*unaffected
LinuxLinux6.12.96 <= 6.12.*unaffected
LinuxLinux6.18.39 <= 6.18.*unaffected
LinuxLinux7.1.4 <= 7.1.*unaffected
LinuxLinux7.2-rc1 <= *unaffected

Weaknesses

References