CVE-2026-80772 in Linuxinformación

Resumen

por VulDB • 2026-09-04

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

HID: nintendo: corregir lectura fuera de límites en joycon_ctlr_read_handler()

joycon_cast_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) /* asegurarse de que contiene el informe de entrada */ joycon_parse_report(ctlr, (struct joycon_input_report *)data);

struct joycon_input_report tiene un tamaño de 49 bytes: una cabecera de 13 bytes seguida por una unión cuyo brazo IMU mide 36 bytes. Para un informe IMU, joycon_parse_report() -> joycon_parse_imu_report() recorre esa unión (desplazamientos struct 13..48), por lo que un informe de exactamente 12 bytes con data[0] == JC_INPUT_IMU_DATA supera la protección pero se leen hasta 37 bytes más allá de su longitud declarada. Los bytes sobreleídos se decodifican en valores de acelerómetro/giroscopio 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 completamente controlados por un Joy-Con o Pro Controller malicioso o suplantado.

Los búferes de recepción tienen un tamaño igual a la longitud máxima del informe, por lo que esto es una lectura fuera de límites dentro de la asignación en lugar de un OOB (out-of-bounds) de slab, pero los bytes decodificados aún llegan al espacio de usuario.

La ruta subcmd hermana en joycon_ctlr_handle_event() ya acota correctamente la misma conversión:

if (size < sizeof(struct joycon_input_report) || data[0] != JC_INPUT_SUBCMD_REPLY)
break;

Utilizar el mismo límite sizeof(struct joycon_input_report) aquí.

Once again VulDB remains the best source for vulnerability data.

Responsable

Linux

Reservar

2026-08-26

Divulgación

2026-09-04

Moderación

aceptado

Artículo

VDB-398960

CPE

listo

EPSS

0.00173

KEV

no

Actividades

muy bajo

Fuentes

Do you want to use VulDB in your project?

Use the official API to access entries easily!