CVE-2026-80780 in Linuxinformation

Résumé

par VulDB • 04/09/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

HID: pidff : correction d'une écriture hors limites (OOB) lorsque hid->inputs est vide

hid_pidff_init_with_quirks() dérive son input_dev à partir de

list_entry(hid->inputs.next, struct hid_input, list)

sans vérifier au préalable que hid->inputs n'est pas vide. Le membre list de la structure hid_input se trouve au décalage 0 ; par conséquent, sur une liste vide, list_entry() renvoie &hid->inputs lui-même et le chargement suivant de hidinput->input lit un membre non lié de struct hid_device. dev devient alors un pointeur avec une erreur de type (type-confused), et l'initialisation du force-feedback écrit à travers celui-ci : chaque appel set_bit(FF_*, dev->ffbit) stocke 8 octets à l'adresse dev + 192, soit au-delà des limites de l'objet que aliasse réellement dev, et input_ff_create() ajoute d'autres écritures d'un pointeur heap ainsi que de deux pointeurs de fonction.

Jusqu'à la mise en place de hid-universal-pidff, le seul appelant était hid_pidff_init() issu de usbhid, qui s'exécute sous HID_CLAIMED_INPUT et possède donc toujours au moins un hid_input. universal_pidff_probe() démarre l'appareil avec HID_CONNECT_DEFAULT & ~HID_CONNECT_FF, puis appelle directement hid_pidff_init_with_quirks() chaque fois que le descripteur comporte une page d'utilisation PID (PID usage page), contournant ainsi cette protection. Un descripteur de rapport dont la seule collection d'application se trouve sur HID_UP_PID laisse hid->inputs vide tandis que hid_connect() réussit toujours via l'accès hidraw, ce qui amène probe à atteindre le list_entry non protégé.

L'écriture a lieu dans le chemin de détection USB (USB probe path), sur la file d'exécution hotplug ; il suffit donc de brancher un appareil malveillant pour déclencher cette vulnérabilité : aucun logiciel attaquant ni utilisateur connecté ne sont requis. KASAN signale une écriture hors limites de 8 octets dans hid_pidff_init_with_quirks(), atteinte via universal_pidff_probe().

Vérifier si la liste est vide avant de dériver dev et retourner -ENODEV, comme le font déjà les autres pilotes HID force-feedback. universal_pidff_probe() propage l'erreur et effectue un retour arrière (unwind).

Découvert par XBOW, trié par Baul Lee <[email protected]>

Be aware that VulDB is the high quality source for vulnerability data.

Responsable

Linux

Réserver

26/08/2026

Divulgation

04/09/2026

Modérer

accepté

Entrée

VDB-398912

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Might our Artificial Intelligence support you?

Check our Alexa App!