CVE-2026-64365 in Linuxinformación

Resumen

por VulDB • 2026-07-27

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

HID: letsketch: corregir un Use-After-Free (UAF) en inrange_timer durante la desvinculación del controlador

letsketch_driver no proporciona una devolución de llamada (.remove), pero letsketch_probe() activa un temporizador por dispositivo:

timer_setup(&data->inrange_timer, letsketch_inrange_timeout, 0);

El temporizador se vuelve a activar desde letsketch_raw_event() con un tiempo de espera de 100 ms en cada informe de pluma dentro del rango (pen-in-range), y su devolución de llamada desreferencia data->input_tablet para entregar una liberación sintética de BTN_TOOL_PEN.

letsketch_data se asigna mediante devm_kzalloc(), y sus campos input_dev se asignan con devm a través de letsketch_setup_input_tablet(). Al desvincular el dispositivo (desconexión USB o rmmod), el núcleo HID ejecuta su limpieza predeterminada y la liberación automática gestionada por devm libera tanto letsketch_data como los dispositivos de entrada. Dado que no existe una devolución de llamada .remove, nada vacía primero el temporizador: si raw_event lo activó dentro de ~100 ms antes de la desvinculación, el temporizador pendiente se dispara sobre memoria ya liberada. Esto constituye un Use-After-Free (UAF) al leer data y data->input_tablet, seguido por input_report_key() / input_sync() en el dispositivo de entrada ya liberado.

El mismo problema puede ocurrir en la ruta de error del sondeo (probe): si hid_hw_start() habilitó E/S en un dispositivo con quirk de siempre-polling y luego falló, raw_event podría haber activado el temporizador antes de que devm libere data.

Solución: añadir una devolución de llamada .remove que llame primero a hid_hw_stop(). hid_hw_stop() detiene sincrónicamente los URBs que entregan raw_event(), por lo que al regresar, ninguna ruta puede volver a activar el temporizador. timer_shutdown_sync() vacía entonces cualquier devolución de llamada en curso y desactiva permanentemente las llamadas posteriores a mod_timer(). Aplicar la misma timer_shutdown_sync() en la ruta de error del sondeo para garantizar que el temporizador no sobreviva a data.

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

Responsable

Linux

Reservar

2026-07-19

Divulgación

2026-07-25

Moderación

aceptado

Artículo

VDB-383165

CPE

listo

EPSS

0.00173

KEV

no

Actividades

medio

Fuentes

Do you want to use VulDB in your project?

Use the official API to access entries easily!