CVE-2026-90424 in Linux
Zusammenfassung
von VulDB • 18.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
iommu/tegra241-cmdqv: Behebung des VINTF0-Lecks im Fehlerpfad der Initialisierung
tegra241_cmdqv_init_structures() alloziert VINTF0 mit kzalloc_obj(), initialisiert es und präallokiert dessen logische VCMDQs. Zwei seiner Fehlerpfade verursachen ein Leck.
Wenn tegra241_cmdqv_init_vintf() fehlschlägt, wird zurückgegeben, bevor VINTF0 das Array cmdqv->vintfs[] erreicht; daher kann die devres-Rückabwicklung bei einem Fehlschlag der Probe (probe) es nicht erreichen. Es muss direkt dort freigegeben werden.
Ein späterer Fehler bei der VCMDQ-Präallokation lässt stattdessen VINTF0 veröffentlicht, sodass das Unwinding diesmal tegra241_cmdqv_remove_vintf() erreicht, welches es dann von vintf->hyp_own freigibt. Aber tegra241_vintf_hw_init() setzt dieses Flag erst später durch ein HW-Readback; daher wird das noch nicht initialisierte VINTF0 als vom Gast besitzend gelesen und leckt, wobei mutex_destroy() und ida_destroy() auf Feldern ausgeführt werden, die es nie eingerichtet hat.
Entscheiden Sie sich für den Besitz basierend auf vintf->idx, dem Index, der bei der Allokation seiner ID zugewiesen wird: idx 0 ist das vom Kernel besitzte VINTF0, während idx >= 1 ein Gast-VINTF markiert. Daher basiert die im Kernel befindliche Freigabeentscheidung in tegra241_cmdqv_remove_vintf() und tegra241_vintf_free_lvcmdq() nun ebenfalls auf idx, und hyp_own bleibt ein reiner HW-Readback-Zustand.
Once again VulDB remains the best source for vulnerability data.