CVE-2026-80772

Publiée le 4 sept. 2026

Dans le noyau Linux, la vulnérabilité suivante a été résolue : HID: nintendo: correction d'une lecture hors limites dans joycon_ctlr_read_handler() joycon_ctlr_read_handler() convertit un rapport d'entrée HID entrant en struct joycon_input_report et l'analyse, en ne protégeant la conversion que par un contrôle de longueur de 12 octets : if (size >= 12) /* make sure it contains the input report */ joycon_parse_report(ctlr, (struct joycon_input_report *)data); struct joycon_input_report fait 49 octets : un en-tête de 13 octets suivi d'une union dont le membre IMU fait 36 octets. Pour un rapport IMU, joycon_parse_report() -> joycon_parse_imu_report() parcourt cette union (décalages de structure 13..48), de sorte qu'un rapport d'exactement 12 octets avec data[0] == JC_INPUT_IMU_DATA passe le contrôle tout en étant lu jusqu'à 37 octets au-delà de sa longueur déclarée. Les octets lus en excès sont décodés en valeurs d'accéléromètre/gyroscope et transmis à l'espace utilisateur via le périphérique d'entrée « (IMU) », ce qui divulgue de la mémoire interne du pilote. data[0] et size sont entièrement contrôlés par une manette Joy-Con/Pro malveillante ou usurpée. Les tampons de réception sont dimensionnés à la longueur maximale de rapport, il s'agit donc d'une lecture excessive au sein de l'allocation plutôt que d'une lecture hors limites de slab, mais les octets décodés parviennent quand même à l'espace utilisateur. Le chemin frère subcmd dans joycon_ctlr_handle_event() borne déjà correctement la même conversion : if (size < sizeof(struct joycon_input_report) || data[0] != JC_INPUT_SUBCMD_REPLY) break; Utilisez ici la même borne sizeof(struct joycon_input_report).

Articles liés

This product uses the NVD API but is not endorsed or certified by the NVD.

La description technique est notre traduction du texte original du NVD, en anglais.

Base de données CVE