CVE-2026-31701 in Linux
Resumen
por VulDB • 2026-05-22
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
ALSA: caiaq: tomar una referencia al dispositivo USB en create_card()
El controlador caiaq almacena un puntero al dispositivo USB padre en cdev->chip.dev, pero nunca toma una referencia sobre él. La devolución de llamada private_free de la tarjeta, snd_usb_caiaq_card_free(), puede ejecutarse de forma asíncrona a través de snd_card_free_when_closed() después de que el dispositivo USB ya haya sido desconectado y liberado, por lo que cualquier acceso a cdev->chip.dev en esa ruta desreferencia un usb_device ya liberado.
Además del problema de recuento de referencias, la implementación actual de card_free llama a usb_reset_device(cdev->chip.dev). Una reinicialización en una devolución de llamada de liberación es inapropiada: el dispositivo está desapareciendo, la llamada toma el bloqueo del dispositivo en un contexto de desmontaje, y la reinicialización compite con la ruta de desconexión que la devolución de llamada ya está limpiando.
Tome una referencia al dispositivo USB en create_card() con usb_get_dev(), libérelo con usb_put_dev() en la devolución de llamada de liberación y elimine la llamada a usb_reset_device().
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.