CVE-2026-80772
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.
