CVE-2026-80780
Nel kernel Linux, è stata risolta la seguente vulnerabilità: HID: pidff: corregge la scrittura OOB quando hid->inputs è vuoto hid_pidff_init_with_quirks() ricava il proprio input_dev da list_entry(hid->inputs.next, struct hid_input, list) senza prima verificare che hid->inputs non sia vuoto. Il membro list di struct hid_input si trova all'offset 0, quindi, con una lista vuota, list_entry() restituisce &hid->inputs stessa e il successivo caricamento di hidinput->input legge un membro non correlato di struct hid_device. dev è quindi un puntatore con tipo errato e l'inizializzazione del force-feedback scrive attraverso di esso: ogni set_bit(FF_*, dev->ffbit) memorizza 8 byte all'indirizzo dev + 192, oltre la fine dell'oggetto a cui dev fa effettivamente riferimento, mentre input_ff_create() aggiunge ulteriori scritture di un puntatore heap e di due puntatori a funzione. Fino a hid-universal-pidff l'unico chiamante era hid_pidff_init() da usbhid, che viene eseguito in HID_CLAIMED_INPUT e pertanto ha sempre almeno un hid_input. universal_pidff_probe() avvia il dispositivo con HID_CONNECT_DEFAULT & ~HID_CONNECT_FF e quindi chiama direttamente hid_pidff_init_with_quirks() ogni volta che il descrittore contiene una pagina di utilizzo PID, aggirando tale controllo. Un descrittore di report la cui unica application collection è su HID_UP_PID lascia hid->inputs vuoto mentre hid_connect() ha comunque esito positivo tramite la richiesta hidraw, quindi probe raggiunge list_entry() senza controllo. La scrittura avviene nel percorso di probe USB, sulla workqueue hotplug, quindi è sufficiente collegare un dispositivo malevolo per attivarla; non sono richiesti software dell'attaccante né un utente autenticato. KASAN segnala una scrittura di 8 byte fuori dai limiti in hid_pidff_init_with_quirks(), raggiunta da universal_pidff_probe(). Verificare la presenza di una lista vuota prima di ricavare dev e restituire -ENODEV, come già fanno gli altri driver HID force-feedback. universal_pidff_probe() propaga l'errore e annulla le operazioni effettuate. Scoperta da XBOW, sottoposta a triage da Baul Lee <[email protected]>
Articoli correlati
This product uses the NVD API but is not endorsed or certified by the NVD.
La descrizione tecnica è una nostra traduzione del testo originale NVD, in inglese.
