Vulnerability · Published Sep 17, 2026 · Assigned by Linux

CVE-2026-90429iommu/tegra241-cmdqv: Synchronize the error ISR against VINTF (de)init

High 7.8

In plain English

A high-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 5% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)7.8High
Exploit odds (30 days)0.2%top 95.1% of all CVEs
Exploited in the wildNo reportsnot in CISA KEV
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: iommu/tegra241-cmdqv: Synchronize the error ISR against VINTF (de)init A user VINTF is torn down by tegra241_cmdqv_deinit_vintf(), which runs from the destroy callback and from the init-failure unwind in the alloc handler. It clears the cmdqv->vintfs[] slot and lets the iommufd core free it, but nothing serializes that against the error interrupt: tegra241_cmdqv_isr() reads cmdqv->vintfs[idx] and dereferences the vintf. A concurrent error can make the ISR read a slot mid-clear (a NULL deref) or use a vintf which is about to be freed (a use-after-free). deinit_vintf() also returns idx to the IDA before clearing the slot, so a concurrent create that reuses idx can publish its new vintf into the slot, only for this teardown to erase it again with the stale NULL store. On the other end, tegra241_cmdqv_init_vintf() publishes a new vintf with a plain store to the cmdqv->vintfs[] slot, and the ISR dereferences fields of a published vintf such as vintf->base. A plain store gives no ordering on a weakly-ordered CPU, and a stale VINTF_ERR_MAP bit on a reused idx can make the ISR pick a vintf the moment it is published, before its fields are set or tegra241_vintf_hw_init() runs. The cmdqv->vintfs[0] slot stays NULL until tegra241_cmdqv_init_structures() first creates VINTF0, so the slot 0 read needs the same NULL check. Publish every slot with an smp_store_release(), and read each slot in the ISR with an smp_load_acquire() under a NULL check, so the ISR always sees a fully built vintf or NULL. Also make deinit_vintf() clear the slot, and synchronize_irq() prior to returning idx to the IDA, so no vintf is freed under a running handler and no reused idx is clobbered.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:14linux7.2.6-1DEBIAN-CVE-2026-90429
Ubuntu:26.04:LTSlinux7.0.0-42.42UBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2026-90429
Ubuntu:26.04:LTSlinux-aws7.0.0-1016.17UBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-aws-6.14no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-aws-6.17no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-aws-7.0no fix listedUBUNTU-CVE-2026-90429
Ubuntu:26.04:LTSlinux-azureno fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-azure-6.14no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-azure-6.17no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-azure-7.0no fix listedUBUNTU-CVE-2026-90429
Ubuntu:26.04:LTSlinux-azure-fdeno fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-azure-fde-6.14no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-azure-fde-6.17no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-azure-fde-7.0no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-azure-nvidia-6.14no fix listedUBUNTU-CVE-2026-90429
Ubuntu:26.04:LTSlinux-gcp7.0.0-1016.18UBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-gcp-6.14no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-gcp-6.17no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-gcp-7.0no fix listedUBUNTU-CVE-2026-90429
Ubuntu:26.04:LTSlinux-gkeno fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-hwe-6.14no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-hwe-6.17no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-hwe-7.07.0.0-42.42~24.04.1UBUNTU-CVE-2026-90429
Ubuntu:26.04:LTSlinux-ibm7.0.0-1017.17UBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2026-90429
Ubuntu:26.04:LTSlinux-nvidiano fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-nvidia-6.17no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-nvidia-7.0no fix listedUBUNTU-CVE-2026-90429
Ubuntu:26.04:LTSlinux-nvidia-bosno fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-oem-6.14no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-oem-6.17no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2026-90429
Ubuntu:26.04:LTSlinux-oem-7.07.0.0-1017.17UBUNTU-CVE-2026-90429
Ubuntu:26.04:LTSlinux-oracle7.0.0-1015.16UBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-oracle-6.14no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-oracle-6.17no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-oracle-7.0no fix listedUBUNTU-CVE-2026-90429
Ubuntu:26.04:LTSlinux-raspino fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-90429
Ubuntu:26.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-90429
Ubuntu:26.04:LTSlinux-riscv7.0.0-42.42.1UBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-riscv-6.14no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-riscv-6.17no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2026-90429
Ubuntu:24.04:LTSlinux-riscv-7.07.0.0-42.42.1~24.04.1UBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2026-90429
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2026-90429

Affected products (as reported)

VendorProductVersions
Linux Linux 4dc0d12474f9d4833c3dd96b73d61e406d3f5dc7 – before bcb82407633c3008362ad927699d985ee49815574dc0d12474f9d4833c3dd96b73d61e406d3f5dc7 – before f3ef4abc271a1d3d7b6715879e149c286dc8aae74dc0d12474f9d4833c3dd96b73d61e406d3f5dc7 – before a491be376abd1c80a314cdd658632c85cd660b73
Linux Linux 6.17

References