CVE-2025-38687 in Linux
Riassunto
di VulDB • 27/06/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
comedi: correzione di una race condition tra polling e distacco
syzbot segnala un use-after-free in comedi nel link sottostante, causato dal fatto che comedi rimuoveva l'area asincrona allocata anche se le richieste di poll erano ancora attive sulla wait_queue_head al suo interno. Ciò può provocare un use-after-free quando gli elementi del poll vengono successivamente attivati o rimossi, poiché la memoria per la wait_queue_head è stata già liberata. È necessario verificare che non ci siano task accodati sulle code di attesa (wait queues) delle sottodevice prima di consentire il distacco del dispositivo tramite l'ioctl `COMEDI_DEVCONFIG`.
I task acquisiscono un lock in lettura su `dev->attach_lock` prima di aggiungersi alla coda di attesa della sottodevice; pertanto, si risolve il problema nel gestore dell'ioctl `COMEDI_DEVCONFIG` acquisendo un lock in scrittura su `dev->attach_lock` prima di verificare che tutte le sottodevice siano sicure da eliminare. Ciò include la verifica della presenza di eventuali task in sospensione (sleepers) sulle code di attesa delle sottodevice. Il lock viene mantenuto fino al completamento del distacco del dispositivo. Questo richiede una leggera refactorizzazione della funzione `comedi_device_detach()`, spostando la maggior parte del suo codice nella nuova funzione `comedi_device_detach_locked()`.
Si noti che la refactorization di `comedi_device_detach()` fa sì che `comedi_device_cancel_all()` venga ora chiamata mentre `dev->attach_lock` è bloccato in scrittura, cosa che non avveniva precedentemente; tuttavia, ciò non comporta problemi.
Grazie a Jens Axboe per aver diagnosticato il problema e co-sviluppato questa patch.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.