CVE-2026-80780 in Linuxinformación

Resumen

por VulDB • 2026-09-04

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

HID: pidff: corregir escritura fuera de límites (OOB) cuando hid->inputs está vacío

hid_pidff_init_with_quirks() obtiene su input_dev mediante

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

sin verificar primero que hid->inputs no esté vacío. El miembro list de la estructura hid_input se encuentra en el desplazamiento 0; por lo tanto, si la lista está vacía, list_entry() devuelve &hid->inputs mismo y la siguiente carga de hidinput->input lee un miembro no relacionado de struct hid_device. dev es entonces un puntero con confusión de tipos (type-confused), y la inicialización del force-feedback escribe a través de él: cada set_bit(FF_*, dev->ffbit) almacena 8 bytes en dev + 192, más allá del final del objeto que dev realmente aliasa, e input_ff_create() añade escrituras adicionales de un puntero heap y dos punteros de función.

Hasta hid-universal-pidff, el único llamador era hid_pidff_init() desde usbhid, que se ejecuta bajo HID_CLAIMED_INPUT y por lo tanto siempre tiene al menos un hid_input. universal_pidff_probe() inicia el dispositivo con HID_CONNECT_DEFAULT & ~HID_CONNECT_FF y luego llama a hid_pidff_init_with_quirks() directamente cada vez que el descriptor lleva una página de uso PID, omitiendo esa protección. Un descriptor de informe cuya única colección de aplicaciones está en HID_UP_PID deja hid->inputs vacío mientras hid_connect() aún tiene éxito mediante la reclamación hidraw, por lo que probe alcanza el list_entry sin protección.

La escritura ocurre en la ruta de detección USB (USB probe path), en la cola de trabajo hotplug; por tanto, conectar un dispositivo malicioso es suficiente para activarla: no se requiere software atacante ni ningún usuario conectado. KASAN informa una escritura fuera de límites de 8 bytes en hid_pidff_init_with_quirks() alcanzada desde universal_pidff_probe().

Verificar si la lista está vacía antes de derivar dev y devolver -ENODEV, tal como ya hacen los demás controladores HID de force-feedback. universal_pidff_probe() propaga el error y realiza un unwinding (desenrollado).

Descubierto por XBOW, triage realizado por Baul Lee <[email protected]>

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsable

Linux

Reservar

2026-08-26

Divulgación

2026-09-04

Moderación

aceptado

Artículo

VDB-398912

CPE

listo

EPSS

0.00181

KEV

no

Actividades

muy bajo

Fuentes

Do you need the next level of professionalism?

Upgrade your account now!