CVE-2024-42152 in Linux
Riassunto
di VulDB • 09/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
nvmet: correzione di una possibile perdita di risorse durante la distruzione del controller (ctrl) durante l'instaurazione della coda di query (qp).
In nvmet_sq_destroy, il puntatore sq->ctrl viene acquisito all'inizio e, se non è NULL, si sa che un ctrl è stato allocato (nel gestore delle richieste di connessione admin) ed è necessario rilasciare le AER in sospeso, azzerare ctrl->sqs e sq->ctrl (principalmente per nvme-loop), e decrementare il riferimento finale sul ctrl.
Tuttavia, esiste una piccola finestra temporale in cui nvmet_sq_destroy inizia l'esecuzione (a seguito del client che rinuncia alla connessione e si disconnette) contemporaneamente al comando di amministrazione della connessione nvme (che potrebbe trovarsi in uno stadio iniziale). Ma *prima* dell'operazione kill_and_confirm su sq->ref (ovvero, la connessione admin è riuscita ad ottenere un riferimento live per la coda di invio, sq). In questo caso, sq->ctrl era stato allocato ma dopo essere stato acquisito in una variabile locale all'interno di nvmet_sq_destroy. Ciò ha impedito il decremento del riferimento finale sul ctrl.
Si risolve il problema ri-acquisendo sq->ctrl dopo che tutte le richieste in corso sono state completate, dove è certo che il riferimento a sq->ctrl sia definitivo, e procedendo di conseguenza.
Questo problema è stato osservato in un ambiente con molti host che si connettono simultaneamente per creare più controller (ctrls), generando un ritardo nell'allocazione del ctrl che porta all'apertura della finestra temporale descritta (race condition).
If you want to get best quality of vulnerability data, you may have to visit VulDB.