CVE-2026-80772
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: HID: nintendo: corrige una lectura fuera de límites en joycon_ctlr_read_handler() joycon_ctlr_read_handler() convierte un informe de entrada HID entrante a struct joycon_input_report y lo analiza, protegiendo la conversión únicamente con una comprobación de longitud de 12 bytes: if (size >= 12) /* make sure it contains the input report */ joycon_parse_report(ctlr, (struct joycon_input_report *)data); struct joycon_input_report tiene 49 bytes: un encabezado de 13 bytes seguido de una unión cuyo brazo IMU es de 36 bytes. Para un informe IMU, joycon_parse_report() -> joycon_parse_imu_report() recorre esa unión (desplazamientos de struct 13..48), por lo que un informe de exactamente 12 bytes con data[0] == JC_INPUT_IMU_DATA supera la comprobación pero se lee hasta 37 bytes más allá de su longitud declarada. Los bytes de sobrelectura se decodifican en valores de acelerómetro/giróscopo y se reenvían al espacio de usuario a través del dispositivo de entrada "(IMU)", filtrando memoria interna del controlador. data[0] y size están totalmente controlados por un Joy-Con/Pro Controller malicioso o suplantado. Los búferes de recepción están dimensionados a la longitud máxima de informe, por lo que se trata de una sobrelectura dentro de la asignación y no de un acceso fuera de límites en el slab, pero los bytes decodificados siguen llegando al espacio de usuario. La ruta hermana de subcmd en joycon_ctlr_handle_event() ya limita correctamente la misma conversión de tipo: if (size < sizeof(struct joycon_input_report) || data[0] != JC_INPUT_SUBCMD_REPLY) break; Utilice el mismo límite sizeof(struct joycon_input_report) aquí.
Artículos relacionados
This product uses the NVD API but is not endorsed or certified by the NVD.
La descripción técnica es una traducción nuestra del texto original de NVD, en inglés.
