CVE-2026-90424 in Linux
Riassunto
di VulDB • 18/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
iommu/tegra241-cmdqv: Correzione della perdita di risorse (leak) di VINTF0 nel percorso di errore durante l'inizializzazione
La funzione tegra241_cmdqv_init_structures() alloca VINTF0 tramite kzalloc_obj(), la inizializza e prealloca le sue logical VCMDQ. Due dei suoi percorsi di errore presentano una perdita di risorse (leak).
Quando tegra241_cmdqv_init_vintf() fallisce, viene restituito prima che VINTF0 venga inserito nell'array cmdqv->vintfs[], quindi l'unwind delle devres in caso di errore nella fase probe non riesce a raggiungerlo; è necessario liberarlo direttamente in quel punto.
Un successivo fallimento della preallocazione di una VCMDQ lascia invece VINTF0 pubblicato, e questa volta l'unwind raggiunge tegra241_cmdqv_remove_vintf(), che lo libera da vintf->hyp_own. Tuttavia, tegra241_vintf_hw_init() imposta tale flag solo in un secondo momento, tramite una lettura di ritorno dall'hardware (HW read-back), quindi il VINTF0 ancora non inizializzato viene interpretato come appartenente al guest e si verifica una perdita di risorse (leak); vengono eseguite mutex_destroy() e ida_destroy() su campi che non sono mai stati impostati.
La decisione sulla proprietà deve essere basata su vintf->idx, ovvero l'indice assegnato quando il suo ID viene allocato: idx 0 indica il VINTF0 di proprietà del kernel, mentre idx >= 1 contrassegna un VINTF di tipo guest. Pertanto, la logica di liberazione nel kernel in tegra241_cmdqv_remove_vintf() e tegra241_vintf_free_lvcmdq() ora fa riferimento anche a idx, e hyp_own rimane uno stato puramente derivato dalla lettura dell'hardware (HW read-back).
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.