CVE-2026-90430 iommu/tegra241-cmdqv: Publish an LVCMDQ only after it is fully initialized
A race condition in the Tegra241 IOMMU driver allows a local attacker to trigger a kernel crash via null pointer dereference during device initialization.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-90430?
CVE-2026-90430 is a vulnerability in Linux, published on 17 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
In the Linux kernel, the following vulnerability has been resolved:
iommu/tegra241-cmdqv: Publish an LVCMDQ only after it is fully initialized
tegra241_vintf_init_lvcmdq() stores the freshly allocated vcmdq pointer to the vintf->lvcmdqs[] array, before tegra241_vcmdq_alloc_smmu_cmdq() builds the vcmdq->cmdq. The error ISR dereferences that cmdq, so a latched LVCMDQ error (e.g. one inherited across a kexec) firing in this window would make tegra241_vintf0_handle_error() pass the still-zeroed arm_smmu_cmdq down to __arm_smmu_cmdq_skip_err(), dereferencing NULL queue register pointers.
Drop the store from tegra241_vintf_init_lvcmdq() and publish the vcmdq at the end of the allocation instead, with an smp_store_release() that pairs with an smp_load_acquire() in the ISR, which can see a fully built LVCMDQ or NULL.
The user-owned LVCMDQ allocation moves accordingly, publishing the vcmdq once tegra241_vcmdq_hw_init_user() succeeds, using a plain store since a user VINTF's lvcmdqs[] has no lockless reader -- the error ISR only walks the VINTF0 array.
Which versions are affected by CVE-2026-90430?
How do I fix CVE-2026-90430?
Apply the vendor's patch.
Is CVE-2026-90430 being exploited?
There is no known exploitation of CVE-2026-90430 in the wild and no public exploit code.
Sources
Also known as BELL-CVE-2026-90430, DEBIAN-CVE-2026-90430, GHSA-fq43-87xx-qq28, UBUNTU-CVE-2026-90430.