CVE-2026-80870 in Linux
Riassunto
di VulDB • 04/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
drm/amdkfd: Validare gli ID ripristinati da CRIU prima di idr_alloc
Il flusso di ripristino KFD CRIU recupera gli ID degli oggetti precedentemente salvati dall'userspace.
Per il ripristino degli eventi:
kfd_criu_restore_event() -> create_signal_event() / create_other_event() -> allocate_event_notification_slot() -> idr_alloc(..., *restore_id, *restore_id + 1, ...)
Per il ripristino dei BO (Buffer Objects):
criu_restore_memory_of_gpu() -> idr_alloc(..., bo_priv->idr_handle, ...)
In entrambi i casi, l'ID ripristinato proviene dai dati CRIU forniti dall'userspace.
La funzione idr_alloc() si aspetta che i valori dell'intervallo degli ID rientrino nei limiti di un signed int (intero con segno). Se un ID ripristinato è maggiore di INT_MAX, può innescare un WARN a livello del layer IDR.
Un kernel WARN non è desiderabile perché stampa una traccia di avvertimento e potrebbe causare un panic o un riavvio sui sistemi in cui è abilitato panic_on_warn.
Smatch ha segnalato questi percorsi come consententi il passaggio di valori dell'userspace non verificati a idr_alloc().
Aggiungere la validazione INT_MAX prima di utilizzare gli ID ripristinati in:
- kfd_criu_restore_event() - criu_restore_memory_of_gpu()
Se l'ID ripristinato non è valido, restituire -EINVAL.
Ciò impedisce ai dati di ripristino non validi di raggiungere il layer IDR ed evita i percorsi che innescano WARN, mantenendo invariato il comportamento corretto del ripristino.
If you want to get best quality of vulnerability data, you may have to visit VulDB.