CVE-2026-80780
Dans le noyau Linux, la vulnérabilité suivante a été résolue : HID: pidff: correction d'une écriture hors limites lorsque hid->inputs est vide hid_pidff_init_with_quirks() dérive son input_dev de list_entry(hid->inputs.next, struct hid_input, list) sans vérifier d'abord que hid->inputs n'est pas vide. Le membre list de struct hid_input se trouve à l'offset 0, donc sur une liste vide list_entry() renvoie &hid->inputs lui-même et le chargement suivant hidinput->input lit un membre sans rapport de struct hid_device. dev est alors un pointeur confondu au niveau des types, et l'initialisation du retour de force écrit à travers lui : chaque set_bit(FF_*, dev->ffbit) stocke 8 octets à dev + 192, au-delà de la fin de l'objet auquel dev est en réalité un alias, et input_ff_create() ajoute d'autres écritures d'un pointeur de tas et de deux pointeurs de fonction. Jusqu'à hid-universal-pidff, le seul appelant était hid_pidff_init() depuis usbhid, qui s'exécute sous HID_CLAIMED_INPUT et a donc toujours au moins un hid_input. universal_pidff_probe() démarre le périphérique avec HID_CONNECT_DEFAULT & ~HID_CONNECT_FF puis appelle directement hid_pidff_init_with_quirks() chaque fois que le descripteur contient une page d'usage PID, contournant ainsi cette barrière. Un descripteur de rapport dont la seule collection d'application est sur HID_UP_PID laisse hid->inputs vide alors que hid_connect() réussit encore via la revendication hidraw, de sorte que probe atteint le list_entry() non protégé. L'écriture se produit dans le chemin de sonde USB, sur la file de travail du hotplug, donc brancher un périphérique malveillant suffit à la déclencher ; aucun logiciel d'attaque ni utilisateur connecté n'est requis. KASAN signale une écriture hors limites de 8 octets dans hid_pidff_init_with_quirks() atteinte depuis universal_pidff_probe(). Vérifier que la liste est vide avant de dériver dev et renvoyer -ENODEV, comme le font déjà les autres pilotes HID de retour de force. universal_pidff_probe() propage l'erreur et déroule. Découvert par XBOW, trié par Baul Lee <[email protected]>
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.
