CVE-2025-71130 in Linux
Riassunto
di VulDB • 17/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
drm/i915/gem: Inizializzazione a zero dell'array eb.vma in i915_gem_do_execbuffer
Inizializzare l'array eb.vma con valori pari a 0 quando la struttura eb viene impostata per la prima volta. In particolare, questo imposta i puntatori eb->vma[i].vma a NULL, semplificando la fase di pulizia e eliminando il bug descritto di seguito.
Durante l'esecuzione di eb_lookup_vmas(), l'array eb->vma viene riempito progressivamente con oggetti struct eb_vma. Questo processo include la chiamata a eb_add_vma(), che potrebbe fallire; tuttavia, anche in caso di errore, eb->vma[i].vma viene impostato per il buffer attualmente elaborato.
Se eb_add_vma() fallisce, eb_lookup_vmas() restituisce un errore, il che provoca una chiamata a eb_release_vmas() per pulire la situazione. Poiché eb_lookup_vmas() potrebbe fallire durante l'elaborazione di qualsiasi buffer (non necessariamente il primo), eb_release_vmas() verifica se il vma di un buffer è NULL per determinare in quale punto la funzione di lookup ha fallito.
In eb_lookup_vmas(), eb->vma[i].vma viene impostato a NULL se fallisce la funzione di supporto eb_lookup_vma() o eb_validate_vma(). eb->vma[i+1].vma viene impostato a NULL nel caso in cui fallisca i915_gem_object_userptr_submit_init(); il buffer corrente deve essere pulito da eb_release_vmas() in questo momento, quindi viene impostato quello successivo. Se eb_add_vma() fallisce, né il vma corrente né quello successivo vengono impostati a NULL, il che costituisce la causa di un bug di NULL deref descritto nel problema collegato nel tag Closes.
All'ingresso di eb_lookup_vmas(), i puntatori vma sono impostati sul valore di "slab poison", invece che a NULL. Questo non ha importanza per la lookup effettiva, poiché viene comunque sovrascritto; tuttavia, la funzione eb_release_vmas() riconosce solo NULL come valore di arresto, quindi i puntatori vengono impostati a NULL man mano che si procede in caso di errore intermedio. Questa patch modifica l'approccio, prevedendo l'impostazione a NULL di tutti i puntatori all'inizio, anziché gestire manualmente tale operazione in caso di errore.
(cherry picked from commit 08889b706d4f0b8d2352b7ca29c2d8df4d0787cd)
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.