CVE-2025-38687

In the Linux kernel, the following vulnerability has been resolved: comedi: fix race between polling and detaching syzbot reports a use-after-free in comedi in the below link, which is due to comedi gladly removing the allocated async area even though poll requests are still active on the wait_queue_head inside of it. This can cause a use-after-free when the poll entries are later triggered or removed, as the memory for the wait_queue_head has been freed. We need to check there are no tasks queued on any of the subdevices' wait queues before allowing the device to be detached by the `COMEDI_DEVCONFIG` ioctl. Tasks will read-lock `dev->attach_lock` before adding themselves to the subdevice wait queue, so fix the problem in the `COMEDI_DEVCONFIG` ioctl handler by write-locking `dev->attach_lock` before checking that all of the subdevices are safe to be deleted. This includes testing for any sleepers on the subdevices' wait queues. It remains locked until the device has been detached. This requires the `comedi_device_detach()` function to be refactored slightly, moving the bulk of it into new function `comedi_device_detach_locked()`. Note that the refactor of `comedi_device_detach()` results in `comedi_device_cancel_all()` now being called while `dev->attach_lock` is write-locked, which wasn't the case previously, but that does not matter. Thanks to Jens Axboe for diagnosing the problem and co-developing this patch.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

Configuration 2 (hide)

cpe:2.3:o:debian:debian_linux:11.0:*:*:*:*:*:*:*

History

19 Oct 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: comedi: corregir condición de carrera entre el sondeo y la desconexión syzbot informa de un uso después de liberación en comedi en el enlace de abajo, lo cual se debe a que comedi elimina alegremente el área asíncrona asignada a pesar de que las solicitudes de sondeo siguen activas en la wait_queue_head dentro de ella. Esto puede causar un uso después de liberación cuando las entradas de sondeo se activan o eliminan posteriormente, ya que la memoria para la wait_queue_head ha sido liberada. Necesitamos verificar que no hay tareas en cola en ninguna de las colas de espera de los subdispositivos antes de permitir que el dispositivo sea desconectado por el ioctl 'COMEDI_DEVCONFIG'. Las tareas bloquearán en modo lectura 'dev->attach_lock' antes de añadirse a la cola de espera del subdispositivo, así que se corrige el problema en el gestor del ioctl 'COMEDI_DEVCONFIG' bloqueando en modo escritura 'dev->attach_lock' antes de verificar que todos los subdispositivos son seguros para ser eliminados. Esto incluye probar si hay procesos en espera en las colas de espera de los subdispositivos. Permanece bloqueado hasta que el dispositivo ha sido desconectado. Esto requiere que la función 'comedi_device_detach()' sea refactorizada ligeramente, moviendo la mayor parte de ella a la nueva función 'comedi_device_detach_locked()'. Tenga en cuenta que la refactorización de 'comedi_device_detach()' resulta en que 'comedi_device_cancel_all()' ahora se llama mientras 'dev->attach_lock' está bloqueado en modo escritura, lo cual no era el caso anteriormente, pero eso no importa. Gracias a Jens Axboe por diagnosticar el problema y codesarrollar este parche.

Information

Published : 2025-09-04 16:15

Updated : 2026-10-19 21:10


NVD link : CVE-2025-38687

Mitre link : CVE-2025-38687

CVE.ORG link : CVE-2025-38687


JSON object : View

Products Affected

debian

  • debian_linux

linux

  • linux_kernel
CWE
CWE-362

Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')