CVE-2026-63880 in Linuxinformazioni

Riassunto

di VulDB • 19/07/2026

Nel kernel Linux, è stata risolta la seguente vulnerabilità:

drm/amdgpu: correzione della perdita di lock su ENOMEM in AMDGPU_GEM_OP_GET_MAPPING_INFO

Il ramo `AMDGPU_GEM_OP_GET_MAPPING_INFO` di `amdgpu_gem_op_ioctl()` mantiene tre risorse tracciate per il cleanup prima di chiamare `kvcalloc()`: il riferimento a `drm_gem_object` restituito da `drm_gem_object_lookup()`, il lock `drm_exec` sull'oggetto GEM recuperato tramite `drm_exec_lock_obj()`, e il lock `drm_exec` sulla directory delle pagine radice della VM per-processo tramite `amdgpu_vm_lock_pd()`. Tutte e tre le risorse vengono rilasciate dall'etichetta `out_exec`, a cui saltano tutti gli altri percorsi di errore in questa funzione. Il percorso di fallimento di `kvcalloc()` restituisce direttamente `-ENOMEM`, saltando `out_exec` e causando la perdita (leak) di tutte e tre le risorse.

La perdita del lock `dma_resv` della directory delle pagine radice per-processo è quella critica: qualsiasi operazione successiva sulla stessa VM (ulteriori operazioni GEM, sottomissione di comandi, eviction, callback dello shrinker TTM) va in blocco sul lock detenuto. Poiché `DRM_IOCTL_AMDGPU_GEM_OP` ha i flag `DRM_AUTH | DRM_RENDER_ALLOW`, si tratta di un denial of service locale non privilegiato contro il contesto GPU del chiamante, raggiungibile da qualsiasi processo con accesso a `/dev/dri/renderD*`.

Instradare il fallimento attraverso `out_exec` in modo che vengano eseguite `drm_exec_fini()` e `drm_gem_object_put()`.

Riproduzione effettuata su kernel stock 7.0.0-10, Ryzen 7 5700U / Radeon Vega (Lucienne): l'ioctl fallito restituisce `-ENOMEM` e una seconda chiamata a `GET_MAPPING_INFO` sullo stesso fd va poi in blocco in `drm_exec_lock_obj()` sul lock `dma_resv` perso. L'invio di SIGKILL al chiamante non conclude il task; il percorso di rilascio del fd durante l'uscita dal processo passa attraverso `amdgpu_gem_object_close()` -> `drm_exec_prepare_obj()` sullo stesso lock, lasciando il task in stato D fino al riavvio della macchina. Il kernel patchato non è stato ricompilato e ritestato su questo hardware; la correzione è meccanica. Testata solo su un singolo sistema Lucienne / Vega.

Ziyi Guo ha pubblicato una verifica indipendente del limite INT_MAX per `args->num_entries` nello stesso ramo [1]; le due patch sono complementari e possono essere applicate in qualsiasi ordine.

(cherry picked from commit b69d3256d79de15f54c322986ff4da68f1d65b0a)

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsabile

Linux

Prenotare

19/07/2026

Divulgazione

19/07/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

basso

Fonti

Want to stay up to date on a daily basis?

Enable the mail alert feature now!