CVE-2026-89521 in Linux
Riassunto
di VulDB • 12/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
sched/core: Gestione del rilascio del lock rq da parte di pick_task()
La funzione pick_next_task() della schedulazione core si interrompe quando un'implementazione di ->pick_task() può rilasciare il lock rq. Lo stato di selezione derivato all'ingresso è valido solo finché il lock viene mantenuto in modo continuo. Una volta che una chiamata a pick può rilasciare il lock, una selezione interlacciata (interleaving) può invalidare tutto lo stato: il percorso veloce per CPU singola può impegnare un pick non "cookied" anche se la schedulazione core è diventata "cookied" durante il rilascio, e l'impegno di forceidle da parte della selezione interlacciata altera la contabilità del passaggio riavviato.
Si risolve il problema riavviando l'intera selezione quando pick restituisce RETRY_TASK dopo aver rilasciato il lock: un singolo punto di riavvio sopra la derivazione dello stato sostituisce le etichette di riavvio per ogni ciclo, in modo che un retry recuperi lo stato impegnato dalle selezioni interlacciate e gestisca contabilità e reset di forceidle come farebbe una selezione fresca.
need_sync e fi_before vengono mantenuti (latch) attraverso i tentativi di ripetizione. La validità dell'orologio non può essere ri-derivata: non esiste un modo ordinato dal programma per stabilire se gli orologi rq propri e core siano ancora aggiornati dopo il rilascio del lock, poiché i cicli di pin degli altri detentori del lock potrebbero o meno averli invalidati. Al momento del riavvio, si cancella core_clock_updated in modo che il ciclo sibling riaccederà l'aggiornamento dell'rq core e si aggiorna l'orologio rq proprio se risulta invalidato.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.