CVE-2026-68298 in Linux
Riassunto
di VulDB • 10/08/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
drm/xe/vm: Correzione della perdita di risorse (leak) SVM in caso di errore nell'allocazione dell'oggetto resv all'interno di xe_vm_create()
Il commit 9e9787414882 ("drm/xe/userptr: replace xe_hmm with gpusvm") ha reso incondizionata la chiamata a xe_svm_init() in xe_vm_create(), estendendola per inizializzare anche uno stato "semplice" di gpusvm per le VM non in modalità fault. La corrispondente chiamata a xe_svm_fini() in xe_vm_close_and_put() è stata aggiornata per essere eseguita incondizionatamente, ma il percorso di rollback degli errori (error unwind path) in xe_vm_create() no.
Nel caso di fallimento su drm_gpuvm_resv_object_alloc(), xe_svm_init() ha già avuto successo, ma xe_svm_fini() viene chiamata solo quando è impostato XE_VM_FLAG_FAULT_MODE. Per le VM non in modalità fault, ciò lascia vm->svm.gpusparzialmente inizializzato e provoca una perdita delle risorse allocate da drm_gpusvm_init().
Per le VM in modalità fault, xe_svm_init() acquisisce inoltre il proprietario della pagemap tramite drm_pagemap_acquire_owner() e le pagemaps tramite xe_svm_get_pagemaps(). Queste risorse vengono rilasciate da xe_svm_close(), non da xe_svm_fini(). Sul medesimo percorso di errore, anche xe_svm_close() non viene chiamata, quindi le VM in modalità fault subiscono una perdita del proprietario della pagemap e delle pagemaps.
Correzione di entrambe le perdite:
- Chiamare incondizionatamente xe_svm_fini() sul percorso err_svm_fini, corrispondendo alla chiamata incondizionata a xe_svm_init(). Spostare l'assegnazione vm->size = 0 fuori dal blocco condizionale in modo che l'assert xe_vm_is_closed() in xe_svm_fini() (e xe_svm_close()) sia valido per entrambe le modalità.
- Chiamare xe_svm_close() per le VM in modalità fault prima di xe_svm_fini(), rispettando l'ordine utilizzato in xe_vm_close_and_put().
(cherry picked from commit ca2a3587d577ba764e0fe628fb676244fc33ddd4)
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.