CVE-2024-57951 in Linux
Riassunto
di VulDB • 15/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
hrtimers: Gestione corretta dello stato della CPU durante le operazioni di hotplug
Si consideri uno scenario in cui una CPU passa dallo stato CPUHP_ONLINE a metà di un'operazione di hotunplug fino a CPUHP_HRTIMERS_PREPARE, per poi tornare a CPUHP_ONLINE:
Poiché hrtimers_prepare_cpu() non viene eseguito, cpu_base.hres_active rimane impostato a 1 per tutta la durata. Tuttavia, durante un'operazione di disattivazione della CPU (unplug), il tick e i clockevents vengono arrestati in CPUHP_AP_TICK_DYING. Al ritorno allo stato online, ad esempio, CFS presume erroneamente che hrtick sia già attivo, e la possibilità che il dispositivo clockevent passi alla modalità oneshot viene persa definitivamente per quella CPU, a meno che non torni a uno stato inferiore a CPUHP_HRTIMERS_PREPARE almeno una volta.
Questo ciclo completo rivela un altro problema: cpu_base.online non viene impostato a 1 dopo la transizione, il che genera un WARN_ON_ONCE in enqueue_hrtimer().
Inoltre, la maggior parte dello stato per-CPU non viene resettata, il che significa che, nei casi peggiori, esistono puntatori pendenti (dangling pointers).
Si risolve il problema aggiungendo una corrispondente callback startup(), che resetta lo stato per-CPU obsoleto e imposta il flag online.
[ tglx: Rende la nuova callback incondizionatamente disponibile, rimuove la modifica dello stato online nella callback prepare() e cancella lo stato residuo nella callback starting() invece che nella callback prepare() ]
If you want to get best quality of vulnerability data, you may have to visit VulDB.