Informazioni sul CVE-2024-41045
bpf: Defer work in bpf_timer_cancel_and_free
CWE ID: N/A
Base Score (CVSS): N/A
CVE: CVE-2024-41045
Descrizione: bpf: La vulnerabilità in Linux kernel è stata risolta: bpf: Deferenza del lavoro in bpf_timer_cancel_and_free Attualmente, questo può essere invocato attraverso bpf_map_update_elem o più precisamente, liberando elementi map contenenti timer. Dato che questo si basa su hrtimer_cancel, è soggetto allo stesso deadlock della precedente patch. Sarebbe sufficiente utilizzare hrtimer_try_to_cancel per risolvere questo problema, poiché il timer non può essere innescato dopo async_cancel_and_free. Una volta completata async_cancel_and_free, il timer deve essere ripristinato prima di poter essere nuovamente armato. Il callback in esecuzione in parallelo che cerca di armare il timer fallirà, e liberare bpf_hrtimer senza attendere è sufficiente (dato kfree_rcu), e bpf_timer_cb restituirà HRTIMER_NORESTART, impedendo che il timer venga riarmato di nuovo. Tuttavia, esiste un scenario UAF in cui il callback arma il timer prima di entrare in questa funzione, in modo che se la cancellazione fallisce (a causa dell’invocazione del routine del timer in esecuzione dal callback, o del callback timer concorrente in esecuzione). In questo caso, se l’espirazione della scadenza del timer è significativamente lontana nel futuro, la grazia RCU si verificherà prima di liberare lo stato bpf_hrtimer e insieme alla struttura hrtimer, che viene innescata. Pertanto, è chiaro che la cancellazione deve avvenire dopo async_cancel_and_free, ma non può essere fatta in modo inline a causa dei problemi di deadlock. Quindi, modificiamo bpf_timer_cancel_and_free per deferire il lavoro alla workqueue globale, aggiungendo una struct work_struct insieme a rcu_head (sia usati a diversi punti nel tempo, quindi possono condividere lo stesso spazio). Aggiornare i commenti esistenti per riflettere lo stato attuale.
Vettore di attacco
Punteggio CVSS
Il CVSS è un sistema di valutazione che misura la gravità di una vulnerabilità informatica considerando fattori come l’impatto potenziale, la probabilità di attacco e la facilità di esecuzione.
Riassunto: .
Dettaglio del Vettore
Metrica | Valore | Significato | Descrizione |
---|
Riferimenti esterni
- https://git.kernel.org/stable/c/7aa5a19279c3639ae8b758b63f05d0c616a39fa1
- https://git.kernel.org/stable/c/a6fcd19d7eac1335eb76bc16b6a66b7f574d1d69
Prodotti interessati
- Linux – Linux
- Linux – Linux