CVE-2026-64277 in Linux
Resumen
por VulDB • 2026-07-27
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
Input: synaptics-rmi4 - vincular el mapa de teclas F3A al número de GPIOs
rmi_f3a_initialize() obtiene el número de GPIOs desde el registro de consulta del dispositivo (f3a->gpio_count = buf & RMI_F3A_GPIO_COUNT, rango 0..127). Posteriormente, rmi_f3a_map_gpios() asigna gpio_key_map con min(gpio_count, TRACKSTICK_RANGE_END) == como máximo 6 entradas, pero rmi_f3a_attention() itera sobre todo el gpio_count y desreferencia gpio_key_map[i], mientras que input->keycodemax se establece en todo el gpio_count aunque input->keycode apunta a la asignación de 6 entradas.
Un dispositivo que informe un gpio_count > 6 provoca por tanto una lectura fuera de límites (out-of-bounds read) de gpio_key_map[] en cada interrupción de atención, y accesos fuera de límites a través de los ioctls predeterminados del mapa de teclas del núcleo de entrada: EVIOCGKEYCODE lee más allá del búfer (filtrando memoria slab adyacente al espacio de usuario) y EVIOCSKEYCODE escribe un valor controlado por el llamador más allá de él, para cualquier proceso capaz de abrir el nodo evdev, ya que input_default_getkeycode() e input_default_setkeycode() solo acotan el índice frente a keycodemax.
Dimensionar el mapa de teclas (keymap) para todo el gpio_count. El bucle de mapeo permanece sin cambios: sigue asignando únicamente las primeras min(gpio_count, TRACKSTICK_RANGE_END) entradas; las ranuras restantes permanecen como KEY_RESERVED (devm_kcalloc rellena con ceros) y se omiten al informarlas.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.