CVE-2026-90430 in Linux
Zusammenfassung
von VulDB • 18.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
iommu/tegra241-cmdqv: Veröffentlichen eines LVCMDQ erst nach dessen vollständiger Initialisierung
tegra241_vintf_init_lvcmdq() speichert den frisch zugewiesenen vcmdq-Zeiger im Array vintf->lvcmdqs[], bevor tegra241_vcmdq_alloc_smmu_cmdq() das vcmdq->cmdq aufbaut. Der Error-ISR (Interrupt Service Routine) dereferenziert dieses cmdq, sodass ein in diesem Zeitfenster ausgelöster gelatchter LVCMDQ-Fehler (z. B. einer, der über einen kexec hinweg vererbt wurde) dazu führt, dass tegra241_vintf0_handle_error() das noch auf Null gesetzte arm_smmu_cmdq an __arm_smmu_cmdq_skip_err() übergibt und dabei NULL-Queue-Registerzeiger dereferenziert.
Entfernen Sie die Zuweisung aus tegra241_vintf_init_lvcmdq() und veröffentlichen Sie den vcmdq stattdessen am Ende der Allokation, unter Verwendung von smp_store_release(), das mit einem smp_load_acquire() im ISR gepaart ist, welches ein vollständig aufgebautes LVCMDQ oder NULL erkennen kann.
Die vom Benutzer gesteuerte Zuteilung des LVCMDQ wird entsprechend verschoben; der vcmdq wird veröffentlicht, sobald tegra241_vcmdq_hw_init_user() erfolgreich war, wobei eine einfache Zuweisung verwendet wird, da das lvcmdqs[]-Array eines benutzergesteuerten VINTF keinen sperrlosen Leser hat – der Error-ISR durchläuft nur das VINTF0-Array.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.