CVE-2026-80780

Publiée le 4 septembre 2026

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.

Base de données CVE